Yandex-ի գործառույթները փոստ են ուղարկում

Yandex-ի գործառույթները փոստ են ուղարկում

Այսօր մենք կստեղծենք այսպես կոչված. Yandex գործառույթը (պաշտոնական անուն Yandex Cloud գործառույթները), որը պայմանավորվել է փոստային ծառայության հետ SendGrid կուղարկի «օճառ» խաղաղ քնած օգտատերերին (ուղղակի կատակում եմ. ես գիտեմ, որ մենք բոլորս դեմ ենք սպամին):

Ես նույնպես ավանդական սերվերների հակառակորդն եմ (բայց առանց ֆանատիզմի), և այսպես կոչվածի կողմնակից. Serverless (առանց սերվերի) լուծումներ, քանի որ ես չեմ սիրում (և ես իսկապես չգիտեմ, թե ինչպես) կառավարել սերվերները, և նույնիսկ ավելին, վճարել այն ժամանակի համար, երբ դրանք բեռնված չեն: Մեկ այլ բան գործառույթներն են: Ինչ-որ մեկը նրանց սպասարկում է առանց ինձ, իսկ ես վճարում եմ միայն զանգերի համար։ 2019 թվականի հոկտեմբերի սկզբին Yandex-ը ներկայացրել է իր Yandex Cloud գործառույթները - կարծես առաջինն է Ռուսաստանի Դաշնությունում Serverless. Եվ հատկապես հաճելին այն է, որ Ալիսի հմտությունների համար նրանք հիմնականում ազատ են, ուստի այդ ժամանակվանից նրանք իմ ծայրամասային տեսլականում են: Բայց եկեք արդեն սկսենք:

Եկեք պատկերացնենք այս սցենարը. Ձեր դիմումը (օրինակ, Ալիսի հմտությունը Հիշիր և Մոռացիր որի վրա, ի դեպ, նույնպես աշխատում է Յանդեքսի գործառույթները) օգտատիրոջը հրավիրում է գնել թվային ապրանք, օրինակ՝ լրացուցիչ տարբերակներ, և օգտատերը վճարում է։ Ինչ-որ վճարային համակարգ (շփոթեցնողորեն նման է Yandex.Money) մշակում է վճարումը և ուղարկում այն ​​ձեր տրամադրած հասցեին (և մենք կունենանք հղում զանգելու համար Յանդեքսի գործառույթները) HTTP- հարցում, որը պարունակում է վճարման մանրամասներ, ինչպիսիք են գումարը, լրիվ անվանումը, հեռախոսահամարը և վճարողի էլ. Մենք ցանկանում ենք ինչ-որ կերպ մշակել այս տվյալները, օրինակ՝ ստուգել գումարը, կատարել համապատասխան գրառումներ տվյալների բազայում, ուղարկել օգտվողներին։ SMS и Էլ. փոստի հասցե վճարման անդորրագրի և հետագա ցուցումների հաստատմամբ: Այսպիսով, ինքներդ միկրոսերվիս.

Այն մասին, թե ինչպես է Յանդեքսի գործառույթները գրառումներ կատարել տվյալների բազայում Cloud Firestore մենք արդեն դիտել ենք այն ձեռնարկում Ալիսը հիշում է ամեն ինչ (և ապագայում, կարծում եմ, մենք օրինակ կքննարկենք մեկ այլ տվյալների բազայի համար. Yandex տվյալների բազա) Այն մասին, թե ինչպես ուղարկել օգտվողներին SMS և ինտեգրել մեր հավելվածը Yandex.Money - մոտ ապագայում մենք կկարգավորենք այն: Հիմա ուղղակի զբաղվենք նամակներ ուղարկելով։

1. Ստեղծեք հաշիվ SendGrid-ում

ՆշումSendGrid-ը պարզապես իմ ընտրությունն է, որը ես արել եմ մի քանի պատճառով, որոնցից գլխավորն այն է, որ նրանք ունեն պատրաստի SDK Node.js-ի համար։ Դուք կարող եք ընտրել ցանկացած այլ փոստային ծառայություն:

Անցնենք առաջ դեպի հաշվի գրանցման էջ և այնտեղ լրացրեք գրանցման ձևը: Հետո մենք գնում ենք Կարգավորման հարթակ, նավիգացիոն վահանակում ընտրեք Email API -> Ինտեգրման ուղեցույցև հիմնական վահանակում - Վեբ API և սեղմեք կոճակը Ընտրել. Ամեն ինչ այնպես է, ինչպես նկարում.

Yandex-ի գործառույթները փոստ են ուղարկում

Հաջորդ քայլում մենք ընտրում ենք Node.js:

Yandex-ի գործառույթները փոստ են ուղարկում

Հաջորդը մենք գալիս ենք մեր համար API-բանալու անունը (կցուցադրվի միայն վահանակում ստեղների ցանկում, և կապ չունի մեր ապագա կոդի հետ. ես պարզապես հայտնեցի անանցանելի demo-api-key) և սեղմեք կոճակը Ստեղծել բանալի:

Yandex-ի գործառույթները փոստ են ուղարկում

Բանալին կստեղծվի, մենք կկրկնօրինակենք այն և կպահենք ամենախորը վստահության մեջ: Իսկ մենք կունենանք կոճակով էկրան Ստուգեք ինտեգրումը, ինչպես ստորև նկարում, բայց մենք դեռ չենք սեղմի այն, բայց եկեք անցնենք կոդը գրելուն.

Yandex-ի գործառույթները փոստ են ուղարկում

2. Կոդ գրելը

Բայց կոդը ինքնին, ինչպես տեսնում եք, ծիծաղելիորեն փոքր է՝ 22 տող:

Yandex-ի գործառույթները փոստ են ուղարկում

Հերթի մեջ #8 Իմ էլփոստը կոշտ կոդավորված է (և հետևաբար՝ ամաչկոտորեն թաքնված) – խնդրում եմ նշել ձերը: Իրական կյանքում մենք կստանանք բոլոր տվյալները (ներառյալ փոստ) օբյեկտից իրադարձություն. Օրինակ, եթե մեթոդը POST օբյեկտ է ուղարկվում մեր ֆունկցիային Տեղ դաշտով (գույքով) փոստ, այս դաշտի արժեքը կարելի է ստանալ այսպես.

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 որպես գործարկման ժամանակի փոփոխականներ: Բայց ներս Յանդեքսի գործառույթները Հնարավոր է տեղադրել այս փոփոխականները անմիջապես գործարկման միջավայրում: Ինչպե՞ս: - Ստորև ցույց կտամ: Հետևաբար փաթեթը dotenv դուք կարող եք նաև չտեղադրել այն, և ֆայլը .env - մի ստեղծեք, և միևնույն ժամանակ կոդը գտնվում է ֆայլում index.js մի փոխիր. Բայց այստեղ մենք տեղադրել ենք այս փաթեթը, ուստի մենք ստեղծում ենք ֆայլեր index.js и .env:

touch index.js
touch .env

Ֆայլում index.js գրեք 22 տող կոդ, որը ցույց է տրված վերևի սքրինշոթում (միայն տողում #8 փոխեք ձեր էլ.փոստը), և ֆայլում .env - (առանց չակերտների կամ կետադրական նշանների) նշեք զույգ - բանալի անունը/արժեքը APIորը մենք վերջերս ստացանք վահանակում SendGrid:
SENDGRID_API_KEY=ձեր-շատ-գաղտնի-sendgrid-api-բանալին

Եվ եթե ավելի քիչ աշխատանք եք ուզում, կլոնավորեք պահեստը և տեղադրեք փաթեթները.

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 և ինչպես տեղադրել այն այնտեղ Յանդեքսի գործառույթները նկարագրված է իմ հոդվածում Ալիսը Բիտրիքսի երկրում - Ես տգետներին ուղարկում եմ այս երկիր, իսկ մնացած բոլորի համար (և վերադարձածների համար)՝ հետո մի փոքրիկ կոմիքս (այսինքն՝ նկարների և տեքստերի շարք):

Մենք ստեղծում ենք սուլոցով թռչել-արխիվ (եկեք այն անվանենք, օրինակ. mailer.zip), որում մենք ներառում ենք գրացուցակը հանգույցի_մոդուլներ և ֆայլեր .env, index.js - ամեն ինչ մեր նախագծի կատալոգից.

Yandex-ի գործառույթները փոստ են ուղարկում

Մենք ստեղծում ենք ֆունկցիա անունով... ճիշտ - փոստատար, ձախ նավիգացիոն մենյուում մենք մտնում ենք Խմբագիր, լրացրեք պահանջվող դաշտերը և անցեք ներդիրին ZIP արխիվ ներբեռնեք մեր արխիվը mailer.zip:

Yandex-ի գործառույթները փոստ են ուղարկում

Եվ ահա ներբեռնելու նախկինում նշված տարբերակը API բանալի ուղղակիորեն այստեղ, այլ ոչ թե նախագծում ֆայլ ստեղծելու փոխարեն .env, և մի տեղադրեք փաթեթը dotenv. Բայց մենք արդեն արել ենք այս ամենը, ուստի ես դա ցույց եմ տալիս զուտ տեղեկատվության համար: Այսինքն՝ կրկնօրինակելու կարիք չկա։

Yandex-ի գործառույթները փոստ են ուղարկում

Այժմ վերին աջ անկյունում սեղմեք կոճակը Ստեղծել տարբերակև սպասեք մի քանի վայրկյան։ Երբ ամեն ինչ պատրաստ է, մենք ավտոմատ կերպով կանցնենք բաժին Վերանայել. Այնտեղ մենք հնարավորություն կտանք տարբերակը Հասարակական գործառույթորպեսզի արտաքին աշխարհից կարողանաս շփվել դրա հետ:

Yandex-ի գործառույթները փոստ են ուղարկում

Դուք տեսնում եք մակագրության դիմացի կապույտ հղումը Զանգի հղում? Սեղմեք այն: Բրաուզերի դատարկ պատուհանը կբացվի... Բայց սպասեք, ես էլ-նամակ եմ ստացել.

Yandex-ի գործառույթները փոստ են ուղարկում

Այժմ դուք կարող եք վերադառնալ վահանակ SendGridև սեղմեք կոճակը Ստուգեք ինտեգրումը. Համակարգն ամեն ինչ կստուգի իր ալիքներով, և արդյունքում այն ​​պետք է վերադարձնի այսպիսի էկրան.

Yandex-ի գործառույթները փոստ են ուղարկում

Ահա և վերջ, տղաներ (և աղջիկներ, իհարկե) - ամեն ինչ իսկապես շատ պարզ է և էլեգանտ: Կլինեն ավելի շատ հոդվածներ: Եթե ​​որևէ մեկին հետաքրքրում է նման բան կարդալ, բաժանորդագրվեք, որպեսզի բաց չթողնեք:

4. Նվիրատվություններ

Yandex-ի գործառույթները փոստ են ուղարկում

Source: www.habr.com

Добавить комментарий