Nhasi tichagadzira izvo zvinonzi. Yandex basa (zita repamutemo
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
Zvekuti kubva sei Yandex mabasa gadzira zvinyorwa mu database Cloud Firestore takatozvitarisa mudzidziso
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
Muchikamu chinotevera tinosarudza Node.js:
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:
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:
2. Kodhi yekunyora
Asi iyo kodhi pachayo, sezvauri kuona, inoseka idiki - mitsara makumi maviri nemaviri!
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
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
Isu tinosika ZIP-archive (ngatizvidaidze, semuenzaniso, mailer.zip), umo isu tinosanganisira dhairekitori node_modules uye mafaira .env, index.js - zvese kubva kubhuku redu reprojekiti:
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:
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!
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.
Iwe unoona yebhuruu link yakatarisana nezvakanyorwa Call link? Click it. Hwindo rebrowser risina chinhu richavhura... Asi mira - ndagamuchira email:
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:
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
Source: www.habr.com