Yandex funtzioek posta bidaltzen dute

Yandex funtzioek posta bidaltzen dute

Gaur deiturikoa sortuko dugu. Yandex funtzioa (izen ofiziala Yandex Cloud Funtzioak), posta zerbitzuarekin bat egin zuena SendGrid "xaboia" bidaliko die lasai lo egiten duten erabiltzaileei (txantxa besterik ez - badakit denok spamaren aurka gaudela).

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 Gogoratu eta Ahaztu horrek, bide batez, ere lan egiten du Yandex funtzioak) erabiltzailea produktu digital bat erostera gonbidatzen du, adibidez, aukera osagarriak, eta erabiltzaileak ordainketa bat egiten du. Ordainketa sistemaren bat (nahasgarria denaren antzekoa Yandex) ordainketa prozesatu eta zuk emandako helbidera bidaltzen du (eta deitzeko esteka bat izango dugu Yandex funtzioak) HTTP-Ordainketaren xehetasunak dituen eskaera, hala nola, zenbatekoa, izen-abizenak, telefono-zenbakia eta ordaintzailearen posta elektronikoa. Datu hauek nolabait prozesatu nahi ditugu, adibidez: zenbatekoa egiaztatu, datu-basean sarrera egokiak egin, erabiltzaileei bidali SMS ΠΈ Emaila ordainketa jaso izanaren berrespena eta argibide gehiagorekin. Beraz, zeure burua mikrozerbitzua.

Nolatik Yandex funtzioak egin sarrerak datu-basean Cloud Firestore dagoeneko ikusi dugu tutorialean Alice dena gogoratzen da (eta etorkizunean, uste dut, beste datu-base baterako adibide bat hartuko dugu kontuan - Yandex datu-basea). Erabiltzaileei bidaltzeko moduari buruz SMS eta gure aplikazioa integratzeko Yandex.Dirua - Etorkizun hurbil batean konponduko dugu. Orain eskutitzak bidaltzeaz arduratuko gara.

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 kontua erregistratzeko orrira eta bertan izen-emate orria bete. Gero joango gara arbela, nabigazio panelean hautatu Posta elektronikoaren APIa -> Integrazio gida, eta panel nagusian - Web APIa eta sakatu botoia Aukeratu. Dena irudian bezala dago:

Yandex funtzioek posta bidaltzen dute

Hurrengo urratsean hautatzen dugu Node.js:

Yandex funtzioek posta bidaltzen dute

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:

Yandex funtzioek posta bidaltzen dute

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:

Yandex funtzioek posta bidaltzen dute

2. Kodea idaztea

Baina kodea bera, ikus dezakezun bezala, irrigarri txikia da - 22 lerro!

Yandex funtzioek posta bidaltzen dute

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 Hemen.

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 Alizia Bitrixen lurrean - Ezjakinak herrialde honetara bidaltzen ditut, eta beste guztientzat (eta itzuli zirenentzat) - gero komiki liburu txiki bat (hau da, irudi eta testu sorta bat).

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:

Yandex funtzioek posta bidaltzen dute

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:

Yandex funtzioek posta bidaltzen dute

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!

Yandex funtzioek posta bidaltzen dute

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.

Yandex funtzioek posta bidaltzen dute

Inskripzioaren parean esteka urdina ikusten duzu Deitzeko esteka? Egin klik. Arakatzailearen leiho huts bat irekiko da... Baina itxaron - mezu elektroniko bat jaso dut:

Yandex funtzioek posta bidaltzen dute

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:

Yandex funtzioek posta bidaltzen dute

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

Yandex funtzioek posta bidaltzen dute

Iturria: www.habr.com

Gehitu iruzkin berria