Danes bomo ustvarili t.i. Funkcija Yandex (uradno ime
Sem tudi nasprotnik (vendar brez fanatizma) tradicionalnih strežnikov in zagovornik t.i. brez strežnika (brezstrežniške) rešitve, ker strežnikov ne maram (in sploh ne znam) administrirati, še bolj pa plačevati čas, ko niso naloženi. Druga stvar so funkcije. Nekdo jih servisira brez mene, jaz pa plačujem samo klice. V začetku oktobra 2019 je Yandex predstavil svoj Funkcije v oblaku Yandex - zdi se, da je prvi v Ruski federaciji brez strežnika. In kar je še posebej lepo, je, da so za Alicine veščine na splošno brezplačne, tako da so od takrat v mojem perifernem vidu. A začnimo že.
Predstavljajmo si ta scenarij. Vaša aplikacija (na primer Alicina spretnost
O tem, kako od Funkcije Yandex vnesite v bazo podatkov Cloud Firestore smo si ga že ogledali v vadnici
1. Ustvarite račun v SendGrid
ObvestiloSendGrid je pač moja izbira, za katero sem se odločil iz več razlogov, glavni je ta, da imajo že pripravljen SDK za Node.js. Izberete lahko katero koli drugo poštno storitev.
Gremo naprej
V naslednjem koraku izberemo Node.js:
Naslednji smo prišli do za naše API-ime ključa (prikazano bo samo v konzoli na seznamu ključev in nima nobene zveze z našo prihodnjo kodo; pravkar sem si omislil neminljivo demo-api-ključ) in pritisnite gumb Ustvari ključ:
Ključ bo generiran, kopirali ga bomo in hranili v najgloblji skrivnosti. In imeli bomo zaslon z gumbom Preverite integracijo, kot na spodnji sliki, vendar ga še ne bomo kliknili, ampak preidimo na pisanje kode:
2. Pisanje kode
Toda sama koda je, kot lahko vidite, smešno majhna - 22 vrstic!
V vrsti #8 Moj e-poštni naslov je v kodi (in zato sramežljivo skrit) – navedite svojega. V resničnem življenju bomo prejeli vse podatke (vključno z E-naslov) od predmeta dogodek. Na primer, če metoda POST predmet je poslan naši funkciji uporabnik s poljem (lastnina) E-naslov, lahko vrednost tega polja dobite takole:
const { user } = event;
const email = user.email;
In če je e-poštni naslov posredovan funkciji z metodo GET, na primer: https://functions.yandexcloud.net/123abc?[email protected]
vrednost parametra E-naslov lahko ga dobite takole:
const email = event.queryStringParameters.email;
Da bi pogledali, kaj točno je v predmetu dogodek, lahko ustvarite najpreprostejše Funkcija Yandex in ga zavrtite s poizvedbami:
module.exports.handler = async function (event) {
return {
'statusCode': 200,
'body': JSON.stringify(event)
};
};
To je podrobneje (vendar manj jasno) obravnavano v uradni dokumentaciji
Ustvarite imenik projekta (npr. poštar), pojdite nanj, inicializirajte projekt, namestite odvisnosti:
mkdir mailer
cd mailer
npm init -y
npm i @sendgrid/mail email-validator dotenv
Tukaj je potreben le paket @sendgrid/pošta. Plastična vrečka email-validator preveri veljavnost elektronskega naslova (kako nisem takoj uganil?), če pa smo vanj prepričani (preverjen je že dolgo brez nas), nam ga ni treba namestiti (in seveda nam tega ni treba preveriti v kodi). Plastična vrečka dotenv zasnovan za branje zapisov iz datoteke .env kot spremenljivke izvajalnega časa. Ampak v Funkcije Yandex Te spremenljivke je mogoče postaviti neposredno v okolje izvajanja. kako - Pokazal bom spodaj. Zato paket dotenv prav tako ga ne morete namestiti in datoteke .env - ne ustvarite, hkrati pa je koda v datoteki index.js ne spremeniti. Tukaj pa smo namestili ta paket, zato ustvarjamo datoteke index.js и .env:
touch index.js
touch .env
V datoteki index.js napišite 22 vrstic kode, prikazane na zgornjem posnetku zaslona (samo v vrstici #8 spremenite svoj e-poštni naslov) in v datoteki .env - (brez narekovajev ali ločil) določite par - ime ključa/vrednost APIki smo ga nedavno prejeli v konzoli SendGrid:
SENDGRID_API_KEY=vaš-zelo-skrivni-sendgrid-api-ključ
In če želite manj dela, klonirajte repozitorij in namestite pakete:
git clone https://github.com/stmike/ycf-sendgrid-mailer-tutorial.git
cd ycf-sendgrid-mailer-tutorial
npm i
V datoteki index.js, v vrsti #8 spremeni e-pošto; ustvarite datoteko v korenskem imeniku .env, in v njem označite ime/vrednost ključa API, kot je prikazano zgoraj.
3. Razmestite
Bolj ali manj jasno in podrobno o Yandex.Cloud in kako ga tja postaviti Funkcije Yandex opisano v mojem članku
Ustvari Zadrga-arhiv (recimo ga npr. mailer.zip), v katerega vključimo imenik node_module in datoteke .env, index.js - vse iz našega kataloga projektov:
Ustvarimo funkcijo z imenom ... pravilno - poštar, v levem navigacijskem meniju vstopimo Urednik, izpolnite zahtevana polja in preklopite na zavihek ZIP arhiv prenesite naš arhiv mailer.zip:
In tukaj je prej omenjena možnost za prenos API ključ neposredno tukaj, namesto da ustvarite datoteko v projektu .env, in ne namestite paketa dotenv. A vse to smo že naredili, zato ga prikazujem zgolj informativno. Se pravi, ni treba podvajati!
Zdaj v zgornjem desnem kotu kliknite gumb Ustvari različicoin počakajte nekaj sekund. Ko je vse pripravljeno, bomo samodejno prešli na razdelek Pregled. Tam bomo omogočili možnost javna funkcijatako da lahko z njim komunicirate iz zunanjega sveta.
Nasproti napisa vidite modro povezavo Povezava do klica? Kliknite ga. Odprlo se bo prazno okno brskalnika ... Toda počakajte - prejel sem e-pošto:
Zdaj se lahko vrnete na konzolo SendGrid, in pritisnite gumb Preverite integracijo. Sistem bo vse preveril po svojih kanalih in posledično bi moral vrniti tak zaslon:
To je to, fantje (in dekleta, seveda) – vse je res zelo preprosto in elegantno! Člankov bo še več. Če koga zanima kaj takega, naj se naroči, da ne zamudite.
4. Donacije
Vir: www.habr.com