Gaur deiturikoa sortuko dugu. Yandex funtzioa (izen ofiziala
Zerbitzari tradizionalen aurkaria (baina fanatismorik gabe) ere naiz, eta deiturikoen aldekoa. zerbitzaririk (zerbitzaririk gabeko) irtenbideak, zerbitzariak administratzea ez zaidalako gustatzen (eta ez baitakit benetan nola egin), eta are gehiago, kargatzen ez diren denboragatik ordaintzea. Beste gauza bat funtzioak dira. Norbaitek ni gabe zerbitzatzen ditu, eta nik deiak bakarrik ordaintzen ditut. 2019ko urriaren hasieran, Yandex-ek aurkeztu zuen Yandex Cloud Funtzioak - Errusiar Federazioko lehena omen da zerbitzaririk. Eta bereziki polita dena da Aliceren trebetasunengatik, oro har, askeak direla, beraz, nire ikusmen periferikoan egon dira harrezkero. Baina has gaitezen dagoeneko.
Imajina dezagun eszenatoki hau. Zure aplikazioa (adibidez, Aliceren trebetasuna
Nolatik Yandex funtzioak egin sarrerak datu-basean Cloud Firestore dagoeneko ikusi dugu tutorialean
1. Sortu kontu bat SendGrid-en
Kontuan izanSendGrid nire aukera besterik ez da, hainbat arrazoirengatik egin nuena, nagusia Node.js-erako SDK prest dagoela. Beste edozein posta-zerbitzu aukeratu dezakezu.
Goazen aurrera
Hurrengo urratsean hautatzen dugu Node.js:
Hurrengoa guretzat datorkigu API-gako-izena (gakoen zerrendan kontsolan bakarrik bistaratuko da, eta ez du zerikusirik gure etorkizuneko kodearekin; hondagarri bat sortu nuen demo-api-key) eta sakatu botoia Sortu giltza:
Gakoa sortuko da, kopiatu eta konfidantzarik sakonenean gordeko dugu. Eta botoi batekin pantaila bat izango dugu Egiaztatu Integrazioa, beheko irudian bezala, baina oraindik ez dugu klikatuko, baina joan gaitezen kodea idaztera:
2. Kodea idaztea
Baina kodea bera, ikus dezakezun bezala, irrigarri txikia da - 22 lerro!
Ilaran #8 Nire posta elektronikoa gogor kodetuta dago (eta, beraz, lotsatiz ezkutatuta) - mesedez adierazi zurea. Bizitza errealean, datu guztiak jasoko ditugu (barne e-posta) objektutik gertaera. Adibidez, metodoa bada POST objektu bat gure funtziora bidaltzen da erabiltzaile eremuarekin (jabetza) e-posta, eremu honen balioa honela lor daiteke:
const { user } = event;
const email = user.email;
Eta helbide elektronikoa metodoa erabiliz funtzioari pasatzen bazaio GET, adibidez: https://functions.yandexcloud.net/123abc?[email protected]
parametroaren balioa e-posta honela lor dezakezu:
const email = event.queryStringParameters.email;
Objektu batean zehazki zer dagoen ikusteko gertaera, errazena sor dezakezu Yandex funtzioa eta bihurri ezazu galderekin:
module.exports.handler = async function (event) {
return {
'statusCode': 200,
'body': JSON.stringify(event)
};
};
Dokumentazio ofizialean zehatzago (baina ez hain argi) eztabaidatzen da
Beraz, sortu proiektuaren direktorio bat (adibidez, posta-emailea), joan bertara, hasieratu proiektua, instalatu mendekotasunak:
mkdir mailer
cd mailer
npm init -y
npm i @sendgrid/mail email-validator dotenv
Hemen paketea bakarrik behar da @sendgrid/mail. Plastikozko poltsa posta elektronikoaren baliozkotzailea helbide elektronikoaren baliozkotasuna egiaztatzen du (nola ez nuen berehala asmatu?), baina ziur bagaude (gu gabe aspaldi egiaztatuta dago), ez dugu instalatu beharrik (eta, noski, ez dugu kodean egiaztatu behar). Plastikozko poltsa dotenv fitxategi bateko erregistroak irakurtzeko diseinatua .env exekuzio-aldagai gisa. Bainan Yandex funtzioak Posible da aldagai hauek zuzenean exekuzio-ingurunean jartzea. Nola? - Jarraian erakutsiko dut. Beraz paketea dotenv ere ezin duzu instalatu, eta fitxategia .env - ez sortu, eta, aldi berean, kodea fitxategian dago aurkibidea.js ez aldatu. Baina hemen pakete hau instalatu dugu, beraz, fitxategiak sortzen ditugu aurkibidea.js ΠΈ .env:
touch index.js
touch .env
Fitxategian aurkibidea.js idatzi goiko pantaila-argazkian erakusten diren 22 kode lerroak (lerroan bakarrik #8 aldatu zure posta elektronikoa), eta fitxategian .env - (koma edo puntuaziorik gabe) zehaztu bikotea - gako-izena/balioa APIberriki kontsolan jaso duguna SendGrid:
SENDGRID_API_KEY=zure-sendgrid-api-gako-oso-sekretua
Eta lan gutxiago nahi baduzu, klonatu biltegia eta instalatu paketeak:
git clone https://github.com/stmike/ycf-sendgrid-mailer-tutorial.git
cd ycf-sendgrid-mailer-tutorial
npm i
Fitxategian aurkibidea.js, lerroan #8 posta elektronikoa aldatu; sortu fitxategi bat erro direktorioan .env, eta bertan adierazi gakoaren izena/balioa API, goian ikusten den bezala.
3. Zabaldu
Gutxiago ala argiago eta zehatz-mehatz buruz Yandex.Hodeia eta nola kokatu bertan Yandex funtzioak nire artikuluan azalduta
Guk sortzen dugu zip-artxiboa (dei diezaiogun, adibidez, posta.zip), eta bertan direktorioa sartzen dugu nodo_moduluak eta fitxategiak .env, index.js - Gure proiektuen katalogoko guztia:
Funtzio bat sortzen dugu izenarekin... zuzen - posta-emailea, ezkerreko nabigazio menuan sartzen gara Editorea, bete beharrezko eremuak eta aldatu fitxara ZIP artxiboa deskargatu gure artxiboa posta.zip:
Eta hona hemen lehen aipatutako aukera deskargatzeko API gakoa zuzenean hemen, proiektuan fitxategi bat sortu beharrean .env, eta ez instalatu paketea dotenv. Baina hori guztia dagoeneko egin dugu, beraz, informaziorako soilik erakusten ari naiz. Hau da, ez dago bikoiztu beharrik!
Orain goiko eskuineko izkinan egin klik botoian Sortu bertsioa, eta itxaron segundo pare bat. Dena prest dagoenean automatikoki atalera joango gara ΠΠ±Π·ΠΎΡ. Bertan aukera gaituko dugu funtzio publikoakanpoko mundutik harekin elkarreragiteko aukera izan dezazun.
Inskripzioaren parean esteka urdina ikusten duzu Deitzeko esteka? Egin klik. Arakatzailearen leiho huts bat irekiko da... Baina itxaron - mezu elektroniko bat jaso dut:
Orain kontsolara itzul zaitezke SendGrid, eta sakatu botoia Egiaztatu Integrazioa. Sistemak dena egiaztatuko du bere kanalen bidez, eta, ondorioz, honelako pantaila bat itzuli beharko luke:
Hori da, mutilak (eta neskak, noski) - dena oso sinplea eta dotorea da! Artikulu gehiago egongo dira. Norbaitek horrelako zerbait irakurtzeko interesa badu, harpidetu zaitez aukera galdu ez dezazun.
4. Dohaintzak
Iturria: www.habr.com