Yandex aðgerðir senda póst

Yandex aðgerðir senda póst

Í dag munum við búa til svokallaða. Yandex virka (opinbert nafn Yandex skýjaaðgerðir), sem hafði samráð við póstþjónustuna SendGrid mun senda „sápu“ til notenda sem sofa friðsamlega (að grínast - ég veit að við erum öll á móti ruslpósti).

Ég er líka andstæðingur (en án ofstækis) hefðbundinna netþjóna, og stuðningsmaður svokallaðra. serverless (miðlaralausar) lausnir, vegna þess að mér líkar ekki (og veit eiginlega ekki hvernig) að stjórna netþjónum, og enn frekar - að borga fyrir þann tíma sem þeir eru ekki hlaðnir. Annað er aðgerðir. Einhver þjónustar þá án mín og ég borga bara fyrir símtöl. Í byrjun október 2019 kynnti Yandex sína Yandex skýjaaðgerðir - virðist vera sá fyrsti í Rússlandi serverless. Og það sem er sérstaklega gott er að fyrir hæfileika Alice eru þeir almennt frjálsir, svo þeir hafa verið í jaðarsýn minni síðan. En við skulum byrja nú þegar.

Við skulum ímynda okkur þessa atburðarás. Umsóknin þín (til dæmis kunnátta Alice Mundu og Gleymdu sem, við the vegur, virkar líka á Yandex aðgerðir) býður notandanum að kaupa stafræna vöru, td viðbótarvalkosti, og notandinn greiðir. Einhvers konar greiðslukerfi (ruglingslega svipað og Yandex.Money) vinnur úr greiðslunni og sendir hana á heimilisfangið sem þú gefur upp (og við munum hafa tengil til að hringja í Yandex aðgerðir) HTTP-beiðni sem inniheldur greiðsluupplýsingar, svo sem upphæð, fullt nafn, símanúmer og netfang greiðanda. Við viljum vinna úr þessum gögnum á einhvern hátt, til dæmis: athuga upphæðina, skrá viðeigandi færslur í gagnagrunninn, senda til notenda SMS и Tölvupóstur með staðfestingu á móttöku greiðslu og nánari leiðbeiningum. Svo sjálfur örþjónustu.

Um hvernig frá Yandex aðgerðir gera færslur í gagnagrunninn Cloud Firestore við skoðuðum það þegar í kennslunni Alice man allt (og í framtíðinni, held ég, munum við íhuga dæmi fyrir annan gagnagrunn - Yandex gagnagrunnur). Um hvernig á að senda til notenda SMS og samþætta umsókn okkar við Yandex.Money - við munum redda því á næstunni. Nú skulum við bara takast á við að senda bréf.

1. Búðu til reikning í SendGrid

AthugiðSendGrid er bara mitt val, sem ég gerði af nokkrum ástæðum, sú helsta er að þeir eru með tilbúið SDK fyrir Node.js. Þú getur valið hvaða aðra póstþjónustu sem er.

Höldum áfram á skráningarsíðu reikningsins og fylltu út skráningareyðublaðið þar. Svo förum við til Mælaborð, á yfirlitsskjánum veldu Email API -> Samþættingarleiðbeiningar, og á aðalborðinu - Vef-API og ýttu á hnappinn Veldu. Allt er eins og á myndinni:

Yandex aðgerðir senda póst

Í næsta skrefi veljum við Node.js:

Yandex aðgerðir senda póst

Næst komum við með fyrir okkar API-lyklanafn (verður aðeins birt í stjórnborðinu á listanum yfir lykla og hefur ekkert að gera með framtíðarkóða okkar; ég kom bara með óforgengilegan demo-api-lykill) og ýttu á hnappinn Búa til lykil:

Yandex aðgerðir senda póst

Lykillinn verður búinn til, við munum afrita hann og geyma hann í dýpstu trúnaði. Og við munum hafa skjá með hnappi Staðfestu samþættingu, eins og á myndinni hér að neðan, en við munum ekki smella á það ennþá, en við skulum halda áfram að skrifa kóðann:

Yandex aðgerðir senda póst

2. Að skrifa kóða

En kóðinn sjálfur, eins og þú sérð, er fáránlega lítill - 22 línur!

Yandex aðgerðir senda póst

Í línu #8 Netfangið mitt er harðkóða (og því feimnislega falið) - vinsamlega tilgreinið þitt. Í raunveruleikanum munum við fá öll gögnin (þ Tölvupóst eða) frá hlut atburður. Til dæmis ef aðferðin POST hlutur er sendur í fall okkar notandi með reit (eign) Tölvupóst eða, gildi þessa reits er hægt að fá svona:

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

Og ef netfangið er sent til aðgerðarinnar með því að nota aðferðina , til dæmis: https://functions.yandexcloud.net/123abc?[email protected]
færibreytugildi Tölvupóst eða þú getur fengið þetta svona:

const email = event.queryStringParameters.email;

Til að skoða hvað nákvæmlega er að finna í hlut atburður, þú getur búið til einfaldasta Yandex virka og snúðu því með fyrirspurnum:

module.exports.handler = async function (event) {
  return {
   'statusCode': 200, 
   'body': JSON.stringify(event)
  };
};

Um þetta er fjallað nánar (en minna skýrt) í opinberu skjölunum hér.

Svo, búðu til verkefnaskrá (til dæmis, póstur), farðu í það, frumstilltu verkefnið, settu upp ósjálfstæði:

mkdir mailer
cd mailer
npm init -y
npm i @sendgrid/mail email-validator dotenv

Hér þarf aðeins pakkann @sendgrid/mail. Plastpoki staðfestingartæki fyrir tölvupóst athugar hvort netfangið sé gilt (hvernig giskaði ég ekki strax?), en ef við erum viss um það (það hefur þegar verið athugað í langan tíma án okkar), þurfum við ekki að setja það upp (og auðvitað þurfum við ekki að athuga það í kóðanum). Plastpoki dotenv hannað til að lesa skrár úr skrá .NS sem runtime breytur. En í Yandex aðgerðir Það er hægt að setja þessar breytur beint inn í keyrsluumhverfið. Hvernig? - Ég skal sýna það hér að neðan. Því pakkinn dotenv þú getur heldur ekki sett það upp og skrána .NS - ekki búa til, og á sama tíma er kóðinn í skránni index.js ekki breytast. En hér höfum við sett upp þennan pakka, þannig að við búum til skrár index.js и .NS:

touch index.js
touch .env

Í skrá index.js skrifaðu 22 línur af kóða sem sýndar eru á skjámyndinni hér að ofan (aðeins í línunni #8 breyttu netfanginu þínu), og í skránni .NS - (án gæsalappa eða greinarmerkja) tilgreindu parið - lykilheiti/gildi APIsem við fengum nýlega í vélinni SendGrid:
SENDGRID_API_KEY=mjög-leynilegur-sendgrid-api-lykillinn þinn

Og ef þú vilt minna vinnu, klónaðu geymsluna og settu upp pakkana:

git clone https://github.com/stmike/ycf-sendgrid-mailer-tutorial.git
cd ycf-sendgrid-mailer-tutorial
npm i

Í skrá index.js, í línu #8 breyta tölvupósti; búa til skrá í rótarskránni .NS, og í henni tilgreinið nafn/gildi lykilsins API, eins og sést hér að ofan.

3. Dreifa

Meira og minna skýrt og ítarlega um Yandex.Cloud og hvernig á að setja það þar Yandex aðgerðir lýst í grein minni Lísa í landi Bitrix - Ég sendi þá sem eru fáfróðir hingað til lands, og fyrir alla aðra (og þá sem eru komnir aftur) - svo litla myndasögu (þ.e. röð mynda og texta).

Búa til Zip-skjalasafn (köllum það td, mailer.zip), þar sem við tökum möppuna með hnútamódel og skrár .env, index.js - allt úr verkefnaskránni okkar:

Yandex aðgerðir senda póst

Við búum til fall með nafninu... rétt - póstur, í vinstri flakkvalmyndinni sem við förum inn Ritstjóri, fylltu út nauðsynlega reiti og skiptu yfir í flipann ZIP skjalasafn hlaða niður skjalasafni okkar mailer.zip:

Yandex aðgerðir senda póst

Og hér er áðurnefndur valkostur til að hlaða niður API lykill beint hér, frekar en að búa til skrá í verkefninu .NS, og ekki setja upp pakkann dotenv. En við höfum nú þegar gert þetta allt, svo ég sýni það bara til upplýsingar. Það er, það er engin þörf á að afrita!

Yandex aðgerðir senda póst

Nú í efra hægra horninu smelltu á hnappinn Búa til útgáfu, og bíddu í nokkrar sekúndur. Þegar allt er tilbúið förum við sjálfkrafa í hlutann Skoða. Þar munum við virkja valkostinn opinbert hlutverk, svo að þú getir haft samskipti við það frá umheiminum.

Yandex aðgerðir senda póst

Þú sérð bláa hlekkinn á móti áletruninni Tengill til að hringja? Smelltu á það. Tómur vafragluggi opnast... En bíddu - ég fékk tölvupóst:

Yandex aðgerðir senda póst

Nú geturðu farið aftur í stjórnborðið SendGrid, og ýttu á hnappinn Staðfestu samþættingu. Kerfið mun athuga allt í gegnum rásir sínar og þar af leiðandi ætti það að skila skjá eins og þessum:

Yandex aðgerðir senda póst

Það er það, krakkar (og stelpur, auðvitað) - allt er í raun mjög einfalt og glæsilegt! Það verða fleiri greinar. Ef einhver hefur áhuga á að lesa svona, gerðu áskrifandi svo þú missir ekki af.

4. Framlög

Yandex aðgerðir senda póst

Heimild: www.habr.com

Bæta við athugasemd