Yandex mabasa anotumira tsamba

Yandex mabasa anotumira tsamba

Nhasi tichagadzira izvo zvinonzi. Yandex basa (zita repamutemo Yandex Cloud Mabasa), iyo yakabatana nebasa rekutumira SendGrid ichatumira "sipo" kuvashandisi vakarara murunyararo (kungoita zvekutamba - Ndinoziva kuti tese tinopesana nespam).

Iniwo ndiri mupikisi (asi pasina kunyanyisa) kwemaseva echinyakare, uye mutsigiri wevanodanwa. serverless (isina server) mhinduro, nekuti ini handidi (uye ini handinyatso kunyatsoziva maitiro ekuita) maseva, uye zvakatonyanya kudaro, kubhadhara iyo nguva yaasina kutakurwa. Chimwe chinhu mabasa. Mumwe munhu anovashandisa pasina ini, uye ndinobhadhara chete mafoni. Pakutanga kwaGumiguru 2019, Yandex yakaratidza yayo Yandex Cloud Mabasa - inoita seyokutanga muRussian Federation serverless. Uye chakanyanya kunaka ndechekuti kune hunyanzvi hwaAlice ivo kazhinji vakasununguka, saka vanga vari muchiratidzo changu chekutenderera kubva ipapo. Asi ngatitangei kare.

Ngatimbofungidzirai mamiriro ezvinhu aya. Chikumbiro chako (semuenzaniso, hunyanzvi hwaAlice Rangarira uye Kanganwa iyo, nenzira, inoshandawo Yandex mabasa) inokoka mushandisi kutenga chigadzirwa chedhijitari, semuenzaniso, dzimwe sarudzo, uye mushandisi anobhadhara. Imwe mhando yekubhadhara system (inovhiringidza yakafanana ne Yandex.Money) inogadzirisa mubhadharo uye woitumira kukero yaunopa (uye isu tichange tine chinongedzo chekufona Yandex mabasa) HTTP-chikumbiro chine ruzivo rwekubhadhara, senge huwandu, zita rakazara, nhamba yefoni uye email yemubhadhari. Tinoda kugadzirisa iyi data neimwe nzira, semuenzaniso: tarisa huwandu, ita manyorerwo akakodzera mudhatabhesi, tumira kune vashandisi. SMS ΠΈ enamel nechisimbiso chekugamuchira mubhadharo uye mimwe mirairo. Saka iwe pachako microservice.

Zvekuti kubva sei Yandex mabasa gadzira zvinyorwa mu database Cloud Firestore takatozvitarisa mudzidziso Alice anorangarira zvese (uye mune ramangwana, ndinofunga, tichafunga muenzaniso kune imwe dhatabhesi - Yandex Database) Pamusoro pekutumira kune vashandisi SMS uye batanidza application yedu ne Yandex.Money - tichazvigadzirisa munguva pfupi iri kutevera. Zvino ngatingobatai nekutumira tsamba.

1. Gadzira account muSendGrid

taura pfungwaSendGrid ingori sarudzo yangu, yandakaita nekuda kwezvikonzero zvakati wandei, chikuru chiri chekuti vane yakagadzirira-yakagadzirwa SDK yeNode.js. Unogona kusarudza chero imwe sevhisi yekutumira.

Ngatienderere mberi kune peji rekunyoresa account uye zadza fomu rekunyoresa ipapo. Ipapo tinoenda ku Dashboard, muchikwata chekufambisa sarudza Email API -> Integration Guide, uye pane main panel - Webhu API wobva wadzvanya bhatani Sarudza. Zvese zviri mumufananidzo:

Yandex mabasa anotumira tsamba

Muchikamu chinotevera tinosarudza Node.js:

Yandex mabasa anotumira tsamba

Next tinouya kune yedu API-zita rekiyi (richaratidzwa chete mukoni mune runyorwa rwekiyi, uye harine chekuita nekodhi yedu yeramangwana; ini ndauya neisingaparare. demo-api-kiyi) uye tinya bhatani Gadzira Key:

Yandex mabasa anotumira tsamba

Kiyi ichagadzirwa, isu tichaikopa uye kuichengeta mukuvimba kwakadzama. Uye isu tichava nechidzitiro chine bhatani Verify Integration, sepamufananidzo uri pazasi, asi isu hatichaidzvanya, asi ngatienderere mberi nekunyora kodhi:

Yandex mabasa anotumira tsamba

2. Kodhi yekunyora

Asi iyo kodhi pachayo, sezvauri kuona, inoseka idiki - mitsara makumi maviri nemaviri!

Yandex mabasa anotumira tsamba

Mumutsara #8 Yangu email yakaomeswa (uye saka nenyadzi yakavanzwa) - ndapota ratidza yako. Muhupenyu chaihwo, tinogashira data rese (kusanganisira e) kubva kuchinhu chiitiko. Somuenzaniso, kana nzira POST chinhu chinotumirwa kubasa redu mushandisi nemunda (property) e, kukosha kwemunda uyu kunogona kuwanikwa seizvi:

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

Uye kana iyo email kero yakapfuudzwa kune basa uchishandisa nzira WANA, somuenzaniso: https://functions.yandexcloud.net/123abc?[email protected]
parameter value e unogona kuzviwana sezvizvi:

const email = event.queryStringParameters.email;

Kutarisa kuti chii chaizvo chiri muchinhu chiitiko, unogona kugadzira zviri nyore Yandex basa uye shandura nemibvunzo:

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

Izvi zvinokurukurwa zvakadzama (asi zvishoma zvakajeka) muzvinyorwa zvepamutemo pano.

Saka, gadzira dhairekitori reprojekiti (semuenzaniso, mail), enda kwairi, tanga chirongwa, isa zvinoenderana:

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

Pano chete pasuru inodiwa @sendgrid/mail. Plastic bag email-validator inotarisa iyo email kero yechokwadi (handina kufungidzira sei ipapo?), Asi kana tine chokwadi nazvo (yakatoongororwa kwenguva yakareba pasina isu), hatifanirwe kuiisa (uye, ye hongu, isu hatifanirwe kuitarisa mukodhi). Plastic bag dotenv yakagadzirirwa kuverenga zvinyorwa kubva mufaira .env sezvo runtime variables. Asi mu Yandex mabasa Zvinokwanisika kuisa izvi zvakasiyana-siyana zvakananga munzvimbo yekumhanya. Sei? - Ndichazviratidza pazasi. Saka pasuru dotenv iwe haugone zvakare kuisa iyo faira .env - usagadzira, uye panguva imwechete iyo code iri mufaira index.js usashanduke. Asi pano isu takaisa iyi package, saka tinogadzira mafaera index.js ΠΈ .env:

touch index.js
touch .env

Mufaira index.js nyora mitsara makumi maviri nemaviri yekodhi inoratidzwa mune iyo skrini iri pamusoro (chete mumutsetse #8 shandura email yako), uye mufaira .env - (pasina chero makotesheni kana nyora) tsanangura iyo mbiri - kiyi zita / kukosha APIiyo yatichangobva kugamuchira mune console SendGrid:
SENDGRID_API_KEY=yako-chakavanzika-chako-sendgrid-api-kiyi

Uye kana iwe uchida basa shoma, batanidza repository uye isa mapakeji:

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

Mufaira index.js, mumutsetse #8 chinja email; gadzira faira mumudziyo dhairekitori .env, uye mariri inoratidza zita/ukoshi hwekiyi API, sezvaratidzwa pamusoro apa.

3. Deploy

Zvakawanda kana zvishoma zvakajeka uye zvakadzama nezve Yandex.Cloud uye kuti ungaiisa sei ipapo Yandex mabasa inotsanangurwa muchinyorwa changu Alice muNyika yeBitrix - Ndinotumira avo vasingazivi kunyika ino, uye kune vamwe vose (uye avo vakadzoka) - ipapo bhuku duku rekomiki (kureva mutsara wemifananidzo uye zvinyorwa).

Isu tinosika ZIP-archive (ngatizvidaidze, semuenzaniso, mailer.zip), umo isu tinosanganisira dhairekitori node_modules uye mafaira .env, index.js - zvese kubva kubhuku redu reprojekiti:

Yandex mabasa anotumira tsamba

Isu tinogadzira basa rine zita ... nemazvo - mail, mune yekuruboshwe navigation menyu yatinopinda Mhariri, zadza minda inodiwa, uye shandura kune tab ZIP archive dhawunirodha archive yedu mailer.zip:

Yandex mabasa anotumira tsamba

Uye heino yakambotaurwa sarudzo yekurodha API kiyi zvakananga pano, pane kugadzira faira muprojekiti .env, uye usaise pasuru dotenv. Asi isu takatoita zvese izvi, saka ndiri kuratidza kuti ndiwane ruzivo chete. Ndiko kuti, hapana chikonzero chekudzokorora!

Yandex mabasa anotumira tsamba

Iye zvino mukona yepamusoro yekurudyi tinya bhatani Gadzira shanduro, uye kumirira mashoma mashoma. Kana zvese zvagadzirwa, isu tichangoenda kune chikamu tsananguro. Ikoko tichagonesa sarudzo Basa revanhu vosekuitira kuti iwe ugone kudyidzana nayo kubva kunze kwenyika.

Yandex mabasa anotumira tsamba

Iwe unoona yebhuruu link yakatarisana nezvakanyorwa Call link? Click it. Hwindo rebrowser risina chinhu richavhura... Asi mira - ndagamuchira email:

Yandex mabasa anotumira tsamba

Iye zvino unogona kudzokera kune console SendGrid, wobva wadzvanya bhatani Verify Integration. Iyo sisitimu inoongorora zvese kuburikidza nematashi ayo, uye semhedzisiro inofanirwa kudzosera skrini seizvi:

Yandex mabasa anotumira tsamba

Ndizvozvo, vakomana (uye vasikana, hongu) - zvose zviri nyore chaizvo uye zvinoyevedza! Pachava nezvimwe zvinyorwa. Kana paine munhu anofarira kuverenga chinhu chakadai, nyoresa kuti usarasikirwe.

4. Mipiro

Yandex mabasa anotumira tsamba

Source: www.habr.com

Voeg