Í dag munum við búa til svokallaða. Yandex virka (opinbert nafn
É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
Um hvernig frá Yandex aðgerðir gera færslur í gagnagrunninn Cloud Firestore við skoðuðum það þegar í kennslunni
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
Í næsta skrefi veljum við Node.js:
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:
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:
2. Að skrifa kóða
En kóðinn sjálfur, eins og þú sérð, er fáránlega lítill - 22 línur!
Í 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 FÁ, 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
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
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:
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:
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!
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.
Þú 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:
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:
Þ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
Heimild: www.habr.com