Yandex فنڪشن ميل موڪليو

Yandex فنڪشن ميل موڪليو

اڄ اسين ٺاهينداسين نام نهاد. Yandex فنڪشن (سرڪاري نالو Yandex Cloud افعال)، جيڪو ميلنگ سروس سان ٺهڪي اچي ٿو موڪليو ويو پرامن طور تي سمهندڙ صارفين کي "صابن" موڪليندو (صرف مذاق ڪرڻ - مون کي خبر آهي ته اسان سڀ اسپام جي خلاف آهيون).

مان روايتي سرورن جو مخالف (پر جنونيت کان سواءِ) به آهيان، ۽ نام نهاد حامي به آهيان. سرور (سرور بيس) حل، ڇو ته مان پسند نٿو ڪريان (۽ مان واقعي نه ٿو ڄاڻان) سرور جو انتظام ڪيئن ڪجي، ۽ ان کان به وڌيڪ، ان وقت جي ادائيگي ڪريو جڏهن اهي لوڊ نه ڪيا وڃن. ٻي شيء فنڪشن آهي. ڪو ماڻهو مون کان سواءِ انهن جي خدمت ڪندو آهي، ۽ مان صرف ڪالن لاءِ ادا ڪندو آهيان. آڪٽوبر 2019 جي شروعات ۾، Yandex ان جي پيش ڪئي Yandex Cloud افعال - لڳي ٿو روسي فيڊريشن ۾ پهريون سرور. ۽ خاص طور تي سٺي ڳالهه اها آهي ته ايلس جي صلاحيتن لاءِ اهي عام طور تي آزاد آهن، تنهن ڪري اهي تڏهن کان منهنجي پردي جي نظر ۾ آهن. پر اچو ته اڳ ۾ ئي شروع ڪريون.

اچو ته هن منظر جو تصور ڪريون. توهان جي درخواست (مثال طور، ايلس جي مهارت ياد رکو ۽ وساريو جيڪو، رستي ۾، پڻ ڪم ڪري ٿو Yandex افعال) صارف کي هڪ ڊجيٽل پراڊڪٽ خريد ڪرڻ جي دعوت ڏئي ٿو، مثال طور، اضافي اختيارن، ۽ صارف هڪ ادائيگي ڪري ٿو. ادائگي جي نظام جو ڪجھ قسم (مجھ سان ملندڙ جلندڙ Yandex.Money) ادائگي کي پروسيس ڪري ٿو ۽ ان کي موڪلي ٿو توهان جي ڏنل ايڊريس تي (۽ اسان وٽ ڪال ڪرڻ لاءِ لنڪ هوندي Yandex افعال) HTTP- هڪ درخواست جنهن ۾ ادائگي جي تفصيل شامل آهي، جهڙوڪ رقم، پورو نالو، فون نمبر ۽ ادا ڪندڙ جو اي ميل. اسان هن ڊيٽا کي ڪجهه طريقي سان پروسيس ڪرڻ چاهيون ٿا، مثال طور: رقم چيڪ ڪريو، ڊيٽابيس ۾ مناسب داخل ڪريو، صارفين ڏانهن موڪليو ايس ايم ايس и اي ميل ادائيگي جي وصولي جي تصديق ۽ وڌيڪ هدايتن سان. تنهنڪري پاڻ کي microservice.

جي باري ۾ ڪيئن کان Yandex افعال ڊيٽابيس ۾ داخل ڪريو ڪلائوڊ فيرسٽور اسان ان کي اڳ ۾ ئي سبق ۾ ڏٺو آهي ايلس سڀ ڪجهه ياد ڪري ٿو (۽ مستقبل ۾، مان سمجهان ٿو، اسان هڪ مثال تي غور ڪنداسين ٻئي ڊيٽابيس لاءِ - Yandex ڊيٽابيس). استعمال ڪندڙن کي ڪيئن موڪلڻ بابت ايس ايم ايس ۽ اسان جي ايپليڪيشن سان گڏ Yandex.Money - اسان ان کي ويجهي مستقبل ۾ ترتيب ڏينداسين. هاڻي اچو ته صرف خط موڪلڻ سان معاملو ڪريو.

1. SendGrid ۾ اڪائونٽ ٺاهيو

ويچاريSendGrid صرف منهنجي پسند آهي، جنهن کي مون ڪيترن ئي سببن لاءِ ٺاهيو آهي، هڪ اهم اهو آهي ته انهن وٽ Node.js لاءِ تيار ٿيل SDK آهي. توھان ڪنھن ٻئي ميلنگ سروس کي منتخب ڪري سگھو ٿا.

اچو ته اڳتي وڌون اڪائونٽ جي رجسٽريشن واري صفحي ڏانهن ۽ اتي رجسٽريشن فارم ڀريو. پوء اسان وڃون ٿا ڊيش بورڊ، نيويگيشن پينل ۾ چونڊيو اي ميل API -> انٽيگريشن گائيڊ، ۽ مکيه پينل تي - ويب API ۽ بٽڻ کي دٻايو چونڊيو. هر شي تصوير ۾ آهي جيئن:

Yandex فنڪشن ميل موڪليو

ايندڙ قدم ۾ اسان چونڊيو Node.js:

Yandex فنڪشن ميل موڪليو

اڳتي هلي اسان وٽ اچي اسان جي لاءِ API-key نالو (صرف ڪنسول ۾ ڏيکاريو ويندو چاٻين جي لسٽ ۾، ۽ اسان جي مستقبل جي ڪوڊ سان ڪو به واسطو نه آهي؛ مان صرف هڪ ناقابل برداشت سان آيو آهيان demo-api-key) ۽ بٽڻ کي دٻايو چاٻي ٺاھيو:

Yandex فنڪشن ميل موڪليو

چاٻي ٺاهي ويندي، اسان ان کي نقل ڪنداسين ۽ ان کي تمام گهڻي اعتماد ۾ رکون ٿا. ۽ اسان وٽ هڪ بٽڻ سان اسڪرين هوندي انضمام جي تصديق ڪريو، جيئن هيٺ ڏنل تصوير ۾، پر اسان ان تي اڃا ڪلڪ نه ڪنداسين، پر اچو ته ڪوڊ لکڻ تي اڳتي وڌون:

Yandex فنڪشن ميل موڪليو

2. لکڻ جو ڪوڊ

پر ڪوڊ پاڻ، جيئن توهان ڏسي سگهو ٿا، مضحکہ خیز طور تي ننڍڙو آهي - 22 لائين!

Yandex فنڪشن ميل موڪليو

قطار ۾ #8 منهنجي اي ميل هارڊ ڪوڊ ٿيل آهي (۽ ان ڪري شرم سان لڪايو ويو آهي) - مهرباني ڪري پنهنجو اشارو ڏيو. حقيقي زندگي ۾، اسان سڀ ڊيٽا حاصل ڪنداسين (بشمول اي ميل) اعتراض کان واقعي. مثال طور، جيڪڏهن طريقو پوسٽ هڪ اعتراض اسان جي فنڪشن ڏانهن موڪليو ويو آهي يوزر فيلڊ سان گڏ (ملڪيت) اي ميلهن فيلڊ جي قيمت هن طرح حاصل ڪري سگهجي ٿي:

const { user } = event;
const email = user.email;

۽ جيڪڏهن اي ميل پتي جو طريقو استعمال ڪندي فنڪشن ڏانهن منتقل ڪيو ويو آهي GETمثال طور https://functions.yandexcloud.net/123abc?[email protected]
پيٽرولر جو قدر اي ميل توهان ان کي هن طرح حاصل ڪري سگهو ٿا:

const email = event.queryStringParameters.email;

هڪ نظر وٺڻ لاءِ ته ڪنهن شئي ۾ اصل ۾ ڇا آهي واقعي، توهان آسان بڻائي سگهو ٿا Yandex فنڪشن ۽ ان کي سوالن سان ٽوڙيو:

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_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 - اسان جي منصوبي جي فهرست مان سڀڪنھن شيء کي:

Yandex فنڪشن ميل موڪليو

اسان نالي سان هڪ فنڪشن ٺاهي رهيا آهيون ... صحيح - ميلر، کاٻي نيويگيشن مينيو ۾ اسان داخل ٿينداسين ايڊ ايڊيٽر, ڀريو گھربل فيلڊ، ۽ سوئچ ڏانھن ٽيب ZIP آرڪائيو اسان جي آرڪائيو ڊائون لوڊ ڪريو mailer.zip:

Yandex فنڪشن ميل موڪليو

۽ هتي ڊائون لوڊ ڪرڻ لاء اڳ ذڪر ڪيل اختيار آهي API چيڪ پروجيڪٽ ۾ فائل ٺاهڻ بجاءِ سڌو هتي .env، ۽ پيڪيج کي انسٽال نه ڪريو dotenv. پر اسان اڳ ۾ ئي اهو سڀ ڪجهه ڪري چڪا آهيون، تنهنڪري مان صرف معلومات لاءِ ڏيکاري رهيو آهيان. اهو آهي، نقل ڪرڻ جي ڪا ضرورت ناهي!

Yandex فنڪشن ميل موڪليو

ھاڻي مٿي ساڄي ڪنڊ ۾ بٽڻ تي ڪلڪ ڪريو نسخو ٺاهيو، ۽ ڪجهه سيڪنڊن جو انتظار ڪريو. جڏهن سڀ ڪجهه تيار آهي، اسان خودڪار طريقي سان سيڪشن ڏانهن وڃو جو جائزو. اتي اسان اختيار کي فعال ڪنداسين عوامي فنڪشنته جيئن توهان ٻاهرئين دنيا مان ان سان رابطو ڪري سگهو.

Yandex فنڪشن ميل موڪليو

توهان لکت جي سامهون نيري لنڪ ڏسو ڪال ڪرڻ لاءِ لنڪ؟ ان تي ڪلڪ ڪريو. هڪ خالي برائوزر ونڊو کلي ويندي... پر انتظار ڪريو - مون کي هڪ اي ميل ملي آهي:

Yandex فنڪشن ميل موڪليو

ھاڻي توھان واپس ڪري سگھوٿا ڪنسول ڏانھن موڪليو ويو، ۽ بٽڻ کي دٻايو انضمام جي تصديق ڪريو. سسٽم هر شي کي ان جي چينلن ذريعي چيڪ ڪندو، ۽ نتيجي طور ان کي اسڪرين وانگر موٽڻ گهرجي:

Yandex فنڪشن ميل موڪليو

اهو آهي، ڇوڪرو (۽ ڇوڪريون، يقينا) - هر شيء بلڪل سادو ۽ خوبصورت آهي! وڌيڪ مضمون هوندا. جيڪڏهن ڪو به اهڙو ڪجهه پڙهڻ ۾ دلچسپي رکي ٿو، رڪنيت حاصل ڪريو ته جيئن توهان کي ياد نه ڪيو وڃي.

4. عطيو

Yandex فنڪشن ميل موڪليو

جو ذريعو: www.habr.com

تبصرو شامل ڪريو