آج ہم نام نہاد بنائیں گے۔ یانڈیکس فنکشن (سرکاری نام
میں روایتی سرورز کا مخالف (لیکن جنون کے بغیر) بھی ہوں اور نام نہاد کا حامی بھی ہوں۔ سرورless (سرور کے بغیر) حل، کیونکہ مجھے سرورز کا انتظام کرنا پسند نہیں ہے (اور میں واقعی میں نہیں جانتا ہوں کہ) اور اس سے بھی بڑھ کر، اس وقت کی ادائیگی کریں جب وہ لوڈ نہ ہوں۔ ایک اور چیز فنکشنز ہے۔ کوئی میرے بغیر ان کی خدمت کرتا ہے، اور میں صرف کالوں کے لیے ادائیگی کرتا ہوں۔ اکتوبر 2019 کے آغاز میں، Yandex نے اپنی پیش کی۔ Yandex کلاؤڈ فنکشنز - روسی فیڈریشن میں پہلا لگتا ہے۔ سرورless. اور خاص طور پر اچھی بات یہ ہے کہ ایلس کی مہارتوں کے لیے وہ عام طور پر آزاد ہیں، اس لیے وہ تب سے میرے پردیی وژن میں ہیں۔ لیکن آئیے پہلے ہی شروع کرتے ہیں۔
آئیے اس منظر نامے کا تصور کریں۔ آپ کی درخواست (مثال کے طور پر، ایلس کی مہارت
کے بارے میں کیسے سے Yandex کے افعال ڈیٹا بیس میں اندراجات بنائیں کلاؤڈ فائر اسٹور ہم نے اسے پہلے ہی ٹیوٹوریل میں دیکھا ہے۔
1. SendGrid میں ایک اکاؤنٹ بنائیں
نوٹSendGrid صرف میری پسند ہے، جسے میں نے کئی وجوہات کی بنا پر بنایا، سب سے اہم یہ ہے کہ ان کے پاس Node.js کے لیے ایک ریڈی میڈ SDK ہے۔ آپ کسی بھی دوسری میلنگ سروس کا انتخاب کر سکتے ہیں۔
آئیے آگے بڑھیں۔
اگلے مرحلے میں ہم منتخب کرتے ہیں۔ Node.js:
اگلا ہم اپنے لئے کے ساتھ آتے ہیں APIکلیدی نام (صرف کلیدوں کی فہرست میں کنسول میں دکھایا جائے گا، اور اس کا ہمارے مستقبل کے کوڈ سے کوئی تعلق نہیں ہے؛ میں ابھی ایک ناقابل تلافی کے ساتھ آیا ہوں demo-api-key) اور بٹن دبائیں۔ کلید بنائیں:
کلید تیار کی جائے گی، ہم اسے کاپی کریں گے اور اسے مکمل اعتماد میں رکھیں گے۔ اور ہمارے پاس ایک بٹن کے ساتھ ایک اسکرین ہوگی۔ انضمام کی تصدیق کریں۔جیسا کہ نیچے دی گئی تصویر میں ہے، لیکن ہم ابھی اس پر کلک نہیں کریں گے، لیکن آئیے کوڈ لکھنے کی طرف بڑھتے ہیں:
2. تحریری کوڈ
لیکن کوڈ خود، جیسا کہ آپ دیکھ سکتے ہیں، مضحکہ خیز طور پر چھوٹا ہے - 22 لائنیں!
لائن میں #8 میرا ای میل ہارڈ کوڈ شدہ ہے (اور اس وجہ سے شرم سے پوشیدہ ہے) - براہ کرم اپنا اشارہ کریں۔ حقیقی زندگی میں، ہم تمام ڈیٹا حاصل کریں گے (بشمول ای میل) آبجیکٹ سے تقریب. مثال کے طور پر، اگر طریقہ POST ایک چیز ہمارے فنکشن میں بھیجی جاتی ہے۔ صارف میدان کے ساتھ (پراپرٹی) ای میل، اس فیلڈ کی قدر اس طرح حاصل کی جاسکتی ہے:
const { user } = event;
const email = user.email;
اور اگر ای میل ایڈریس کو طریقہ استعمال کرتے ہوئے فنکشن میں منتقل کیا جاتا ہے۔ حاصل کریںمثال کے طور پر: https://functions.yandexcloud.net/123abc?[email protected]
پیرامیٹر کی قدر ای میل آپ اسے اس طرح حاصل کر سکتے ہیں:
const email = event.queryStringParameters.email;
ایک نظر ڈالنے کے لیے کہ کسی چیز میں بالکل کیا ہے۔ تقریب، آپ سب سے آسان بنا سکتے ہیں۔ یانڈیکس فنکشن اور اسے سوالات کے ساتھ موڑ دیں:
module.exports.handler = async function (event) {
return {
'statusCode': 200,
'body': JSON.stringify(event)
};
};
سرکاری دستاویزات میں اس پر مزید تفصیل سے (لیکن کم واضح طور پر) بحث کی گئی ہے۔
لہذا، ایک پروجیکٹ ڈائرکٹری بنائیں (مثال کے طور پر، میلر)، اس پر جائیں، پروجیکٹ شروع کریں، انحصار انسٹال کریں:
mkdir mailer
cd mailer
npm init -y
npm i @sendgrid/mail email-validator dotenv
یہاں صرف پیکیج کی ضرورت ہے۔ @sendgrid/mail. پلاسٹک بیگ ای میل کی توثیق کرنے والا درستگی کے لیے ای میل ایڈریس چیک کرتا ہے (میں نے ابھی اندازہ کیسے نہیں لگایا؟)، لیکن اگر ہمیں اس کا یقین ہے (یہ ہمارے بغیر پہلے ہی کافی عرصے سے چیک کیا جا چکا ہے)، تو ہمیں اسے انسٹال کرنے کی ضرورت نہیں ہے (اور، یقینا، ہمیں اسے کوڈ میں چیک کرنے کی ضرورت نہیں ہے)۔ پلاسٹک بیگ dotenv فائل سے ریکارڈ پڑھنے کے لیے ڈیزائن کیا گیا ہے۔ .env رن ٹائم متغیرات کے طور پر۔ لیکن میں Yandex کے افعال ان متغیرات کو براہ راست رن ٹائم ماحول میں رکھنا ممکن ہے۔ کیسے؟ - میں اسے نیچے دکھاؤں گا۔ لہذا پیکج dotenv آپ اسے اور فائل بھی انسٹال نہیں کر سکتے .env - نہ بنائیں، اور ایک ہی وقت میں کوڈ فائل میں ہے index.js مت بدلو. لیکن یہاں ہم نے یہ پیکیج انسٹال کیا ہے، اس لیے ہم فائلیں بناتے ہیں۔ index.js и .env:
touch index.js
touch .env
فائل میں index.js اوپر اسکرین شاٹ میں دکھائے گئے کوڈ کی 22 لائنیں لکھیں (صرف لائن میں #8 اپنا ای میل تبدیل کریں) اور فائل میں .env - (بغیر کسی اقتباس یا اوقاف کے) جوڑے کی وضاحت کریں - کلیدی نام/قدر APIجو ہمیں حال ہی میں کنسول میں موصول ہوا ہے۔ میل Sendgrid:
SENDGRID_API_KEY=آپ کی-بہت-خفیہ-sendgrid-api-key
اور اگر آپ کم کام چاہتے ہیں تو ریپوزٹری کو کلون کریں اور پیکجز انسٹال کریں:
git clone https://github.com/stmike/ycf-sendgrid-mailer-tutorial.git
cd ycf-sendgrid-mailer-tutorial
npm i
فائل میں index.js، لائن میں #8 ای میل تبدیل کریں؛ روٹ ڈائرکٹری میں ایک فائل بنائیں .env، اور اس میں کلید کا نام / قدر کی نشاندہی کریں۔ APIجیسا کہ اوپر دکھایا گیا ہے۔
3. تعینات کریں۔
کے بارے میں کم و بیش واضح اور تفصیل سے Yandex.Cloud اور اسے وہاں کیسے رکھا جائے؟ Yandex کے افعال میرے مضمون میں بیان کیا گیا ہے۔
ہم تخلیق کرتے ہیں۔ زپآرکائیو (آئیے اسے کہتے ہیں، مثال کے طور پر، mailer.zip)، جس میں ہم ڈائریکٹری کو شامل کرتے ہیں۔ نوڈ_موڈولز اور فائلیں env, index.js - ہمارے پروجیکٹ کیٹلاگ سے ہر چیز:
ہم نام کے ساتھ ایک فنکشن بناتے ہیں... صحیح طریقے سے - میلر، بائیں نیویگیشن مینو میں ہم داخل ہوتے ہیں۔ ایڈیٹر، مطلوبہ فیلڈز کو پُر کریں، اور ٹیب پر سوئچ کریں۔ زپ آرکائیو ہمارا محفوظ شدہ دستاویزات ڈاؤن لوڈ کریں۔ mailer.zip:
اور یہاں ڈاؤن لوڈ کرنے کا پہلے ذکر کردہ آپشن ہے۔ API کلید پروجیکٹ میں فائل بنانے کے بجائے براہ راست یہاں .env، اور پیکیج کو انسٹال نہ کریں۔ dotenv. لیکن ہم یہ سب کر چکے ہیں، اس لیے میں اسے صرف معلومات کے لیے دکھا رہا ہوں۔ یعنی نقل کرنے کی ضرورت نہیں ہے!
اب اوپری دائیں کونے میں بٹن پر کلک کریں۔ ورژن بنائیں، اور چند سیکنڈ انتظار کریں۔ جب سب کچھ تیار ہو جائے گا، ہم خود بخود سیکشن میں جائیں گے۔ کا جائزہ لیں. وہاں ہم آپشن کو فعال کریں گے۔ عوامی تقریبتاکہ آپ بیرونی دنیا سے اس کے ساتھ بات چیت کر سکیں۔
آپ نوشتہ کے مخالف نیلے رنگ کا لنک دیکھتے ہیں۔ کال کرنے کا لنک? اس پر کلک کریں۔ ایک خالی براؤزر ونڈو کھل جائے گی... لیکن انتظار کریں - مجھے ایک ای میل موصول ہوا:
اب آپ کنسول پر واپس جا سکتے ہیں۔ میل Sendgrid، اور بٹن دبائیں۔ انضمام کی تصدیق کریں۔. سسٹم اپنے چینلز کے ذریعے ہر چیز کی جانچ کرے گا، اور اس کے نتیجے میں اسے اس طرح کی سکرین واپس کرنی چاہیے:
بس، لوگ (اور لڑکیاں، یقینا) - سب کچھ واقعی بہت آسان اور خوبصورت ہے! مزید مضامین ہوں گے۔ اگر کوئی اس طرح کی کوئی چیز پڑھنے میں دلچسپی رکھتا ہے تو سبسکرائب کریں تاکہ آپ اس سے محروم نہ ہوں۔
4. عطیات
ماخذ: www.habr.com