Sot do të krijojmë të ashtuquajturat. Funksioni Yandex (emri zyrtar
Unë jam gjithashtu një kundërshtar (por pa fanatizëm) i serverëve tradicionalë, dhe një mbështetës i të ashtuquajturve. pa server zgjidhje (pa server), sepse nuk më pëlqen (dhe nuk di vërtet si t'i administroj) serverët, dhe aq më tepër, paguaj për kohën kur ata nuk janë të ngarkuar. Një tjetër gjë janë funksionet. Dikush i shërben pa mua dhe unë paguaj vetëm për telefonatat. Në fillim të tetorit 2019, Yandex prezantoi atë Funksionet e resë Yandex - duket se është i pari në Federatën Ruse pa server. Dhe ajo që është veçanërisht e bukur është se për aftësitë e Alice-s ato janë përgjithësisht të lira, kështu që ata kanë qenë në vizionin tim periferik që atëherë. Por le të fillojmë tashmë.
Le ta imagjinojmë këtë skenar. Aplikimi juaj (për shembull, aftësia e Alice
Rreth asaj se si nga Funksionet Yandex bëni shënime në bazën e të dhënave Cloud Firestore ne tashmë e kemi parë atë në tutorial
1. Krijoni një llogari në SendGrid
ShënimSendGrid është vetëm zgjedhja ime, të cilën e bëra për disa arsye, kryesorja është që ata kanë një SDK të gatshme për Node.js. Ju mund të zgjidhni çdo shërbim tjetër postimi.
Le të vazhdojmë
Në hapin tjetër zgjedhim Node.js:
Tjetra kemi ardhur me për tonë API-emri i çelësit (do të shfaqet vetëm në tastierë në listën e çelësave dhe nuk ka të bëjë fare me kodin tonë të ardhshëm; sapo dola me një të padurueshëm demo-api-çelës) dhe shtypni butonin Krijo çelës:
Çelësi do të gjenerohet, ne do ta kopjojmë dhe do ta mbajmë në besimin më të thellë. Dhe ne do të kemi një ekran me një buton Verifiko Integrimin, si në foton më poshtë, por ne nuk do ta klikojmë ende, por le të kalojmë në shkrimin e kodit:
2. Shkrimi i kodit
Por vetë kodi, siç mund ta shihni, është qesharak i vogël - 22 rreshta!
Në rradhë #8 Email-i im është i koduar (dhe për këtë arsye i fshehur me turp) - ju lutemi tregoni tuajat. Në jetën reale, ne do të marrim të gjitha të dhënat (përfshirë Email) nga objekti ngjarje. Për shembull, nëse metoda POST një objekt dërgohet në funksionin tonë përdorues me fushë (pronë) Email, vlera e kësaj fushe mund të merret si kjo:
const { user } = event;
const email = user.email;
Dhe nëse adresa e emailit i kalohet funksionit duke përdorur metodën GET, për shembull: https://functions.yandexcloud.net/123abc?[email protected]
vlera e parametrit Email mund ta merrni si kjo:
const email = event.queryStringParameters.email;
Për të parë se çfarë saktësisht përmban një objekt ngjarje, mund të krijoni më të thjeshtën Funksioni Yandex dhe kthejeni atë me pyetje:
module.exports.handler = async function (event) {
return {
'statusCode': 200,
'body': JSON.stringify(event)
};
};
Kjo është diskutuar më në detaje (por më pak qartë) në dokumentacionin zyrtar
Pra, krijoni një direktori projekti (për shembull, postues), shkoni tek ai, inicializoni projektin, instaloni varësitë:
mkdir mailer
cd mailer
npm init -y
npm i @sendgrid/mail email-validator dotenv
Këtu kërkohet vetëm paketa @sendgrid/mail. Qese plastike email-validator kontrollon adresën e emailit për vlefshmërinë (si nuk e mora me mend menjëherë?), por nëse jemi të sigurt për të (është kontrolluar tashmë për një kohë të gjatë pa ne), nuk kemi pse ta instalojmë atë (dhe, sigurisht, nuk duhet ta kontrollojmë në kod). Qese plastike dotenv projektuar për të lexuar të dhënat nga një skedar .zili si variabla të kohës së funksionimit. Por në Funksionet Yandex Është e mundur që këto variabla të vendosen drejtpërdrejt në mjedisin e kohës së funksionimit. Si? - Do ta tregoj më poshtë. Prandaj paketa dotenv ju gjithashtu nuk mund ta instaloni atë dhe skedarin .zili - mos krijoni, dhe në të njëjtën kohë kodi është në skedar indeks.js mos ndrysho. Por këtu ne e kemi instaluar këtë paketë, kështu që krijojmë skedarë indeks.js и .zili:
touch index.js
touch .env
Në dosje indeks.js shkruani 22 rreshta kodi të treguar në pamjen e mësipërme (vetëm në rresht #8 ndryshoni emailin tuaj) dhe në skedar .zili - (pa thonjëza ose shenjë pikësimi) specifikoni emrin/vlerën e çiftit - çelësit APItë cilën e morëm së fundmi në tastierë SendGrid:
SENDGRID_API_KEY=kyç-api-sendgrid-sendgrid
Dhe nëse doni më pak punë, klononi depon dhe instaloni paketat:
git clone https://github.com/stmike/ycf-sendgrid-mailer-tutorial.git
cd ycf-sendgrid-mailer-tutorial
npm i
Në dosje indeks.js, ne rresht #8 Ndrysho e-mailin; krijoni një skedar në direktorinë rrënjë .zili, dhe në të shënoni emrin/vlerën e çelësit API, siç tregohet pak më sipër.
3. Vendosni
Pak a shumë qartë dhe në detaje rreth Yandex.Cloud dhe si ta vendosni atje Funksionet Yandex përshkruar në artikullin tim
Ne krijojmë zip-arkivë (le ta quajmë, për shembull, postues.zip), në të cilin ne përfshijmë direktorinë nyjet_module dhe dosjet .env, index.js - gjithçka nga katalogu i projektit tonë:
Ne krijojmë një funksion me emrin ... saktë - postues, në menynë e majtë të navigimit futemi Redaktori, plotësoni fushat e kërkuara dhe kaloni në skedën Arkivi ZIP shkarkoni arkivin tonë postues.zip:
Dhe këtu është opsioni i përmendur më parë për të shkarkuar Tasti API direkt këtu, në vend që të krijoni një skedar në projekt .zili, dhe mos e instaloni paketën dotenv. Por ne i kemi bërë tashmë të gjitha këto, kështu që po e tregoj vetëm për informacion. Kjo do të thotë, nuk ka nevojë të kopjohet!
Tani në këndin e sipërm të djathtë klikoni butonin Krijo Version, dhe prisni disa sekonda. Kur gjithçka të jetë gati, ne do të shkojmë automatikisht në seksion Rishikimi. Aty do të aktivizojmë opsionin funksion publiknë mënyrë që të mund të ndërveproni me të nga bota e jashtme.
Ju shihni lidhjen blu përballë mbishkrimit Lidhja për të thirrur? Klikoni atë. Do të hapet një dritare e zbrazët e shfletuesit... Por prisni - mora një email:
Tani mund të ktheheni në tastierë SendGrid, dhe shtypni butonin Verifiko Integrimin. Sistemi do të kontrollojë gjithçka përmes kanaleve të tij, dhe si rezultat duhet të kthejë një ekran si ky:
Kjo është ajo, djema (dhe vajza, natyrisht) - gjithçka është me të vërtetë shumë e thjeshtë dhe elegante! Do të ketë më shumë artikuj. Nëse dikush është i interesuar të lexojë diçka të tillë, abonohuni që të mos humbisni.
4. Donacionet
Burimi: www.habr.com