Ma megalkotjuk az ún. Yandex funkció (hivatalos név
Én is a hagyományos szerverek ellenfele vagyok (de fanatizmus nélkül), és híve az ún. vagy szerver (szerver nélküli) megoldásokat, mert nem szeretem (és nem is nagyon tudom, hogyan kell) adminisztrálni a szervereket, és még inkább fizetni a be nem töltött időért. A másik dolog a funkciók. Valaki kiszolgálja őket nélkülem, és én csak a hívásokért fizetek. 2019. október elején a Yandex bemutatta a Yandex Cloud Functions - úgy tűnik, az első az Orosz Föderációban vagy szerver. És ami különösen jó, hogy Alice képességei számára általában ingyenesek, így azóta is a perifériás látásomban vannak. De kezdjük már el.
Képzeljük el ezt a forgatókönyvet. Az Ön alkalmazása (például Alice készsége
Arról, hogy honnan Yandex funkciók bejegyzéseket készíteni az adatbázisban Cloud Firestore már megnéztük az oktatóanyagban
1. Hozzon létre egy fiókot a SendGridben
MegjegyzésA SendGrid csak az én választásom, amit több okból is választottam, a legfontosabb az, hogy van egy kész SDK-juk a Node.js-hez. Bármilyen más levelezési szolgáltatást választhat.
Menjünk tovább
A következő lépésben kiválasztjuk node.js:
Következő kitaláljuk magunknak API-kulcsnév (csak a konzolban jelenik meg a kulcsok listájában, és semmi köze a jövőbeli kódunkhoz; most találtam egy romlandó demo-api-key) és nyomja meg a gombot Kulcs létrehozása:
A kulcs létrejön, lemásoljuk és a legmélyebb bizalmasan megőrizzük. És lesz egy gombos képernyőnk Integráció ellenőrzése, mint az alábbi képen, de még nem kattintunk rá, hanem térjünk rá a kód írására:
2. Kód írása
De maga a kód, amint láthatja, nevetségesen kicsi - 22 sor!
Sorban #8 Az e-mail-címem kódolt (és ezért félénken el van rejtve) - kérjük, jelezze a sajátját. A való életben minden adatot megkapunk (beleértve email) tárgyból esemény. Például, ha a módszer POST egy objektumot küldünk a függvényünkhöz használó mezővel (ingatlan) email, ennek a mezőnek az értéke a következőképpen kapható meg:
const { user } = event;
const email = user.email;
És ha az e-mail címet a metódus segítségével adjuk át a függvénynek GET, például: https://functions.yandexcloud.net/123abc?[email protected]
paraméter értéke email így kaphatod meg:
const email = event.queryStringParameters.email;
Megnézni, hogy pontosan mit is tartalmaz egy objektum esemény, létrehozhatja a legegyszerűbbet Yandex funkció és csavard le lekérdezésekkel:
module.exports.handler = async function (event) {
return {
'statusCode': 200,
'body': JSON.stringify(event)
};
};
Ezt részletesebben (de kevésbé világosan) tárgyalja a hivatalos dokumentáció
Tehát hozzon létre egy projektkönyvtárat (pl. postázó), lépjen rá, inicializálja a projektet, telepítse a függőségeket:
mkdir mailer
cd mailer
npm init -y
npm i @sendgrid/mail email-validator dotenv
Itt csak a csomag szükséges @sendgrid/mail. Nejlonzacskó email-ellenőrző ellenőrzi az e-mail cím érvényességét (hogy nem tippeltem rögtön?), de ha biztosak vagyunk benne (már régen leellenőrizték nélkülünk), akkor nem kell telepítenünk (és pl. természetesen nem kell ellenőriznünk a kódban). Nejlonzacskó dotenv úgy tervezték, hogy rekordokat olvasson egy fájlból .NS mint futásidejű változók. De Yandex funkciók Ezeket a változókat közvetlenül a futási környezetbe lehet helyezni. Hogyan? - Lent megmutatom. Ezért a csomag dotenv akkor sem telepítheti, és a fájlt .NS - ne hozzon létre, és ugyanakkor a kód benne van a fájlban index.js ne változz. De itt telepítettük ezt a csomagot, így fájlokat hozunk létre index.js и .NS:
touch index.js
touch .env
Fájlban index.js írjon 22 sornyi kódot, amely a fenti képernyőképen látható (csak a sorban #8 módosítsa az e-mail címét), és a fájlban .NS - (idézőjelek és írásjelek nélkül) adja meg a pár - kulcs nevét/értékét APIamit nemrég kaptunk a konzolban SendGrid:
SENDGRID_API_KEY=a-nagyon-titkos-sendgrid-api-kulcs
És ha kevesebb munkát szeretne, klónozza a tárolót, és telepítse a csomagokat:
git clone https://github.com/stmike/ycf-sendgrid-mailer-tutorial.git
cd ycf-sendgrid-mailer-tutorial
npm i
Fájlban index.js, Sorban #8 e-mailt változtatni; hozzon létre egy fájlt a gyökérkönyvtárban .NS, és ebben tüntesse fel a kulcs nevét/értékét API, ahogy fentebb látható.
3. Telepítés
Többé-kevésbé világosan és részletesen kb Yandex.Cloud és hogyan kell oda helyezni Yandex funkciók cikkemben leírtam
Teremt postai irányítószám-archívum (nevezzük pl. levelező.zip), amelybe belefoglaljuk a könyvtárat csomópont_modulok és fájlokat .env, index.js - mindent a projektkatalógusunkból:
Létrehozunk egy függvényt a névvel... helyesen - postázó, a bal oldali navigációs menübe lépünk be A szerkesztő, töltse ki a kötelező mezőket, és váltson a lapra ZIP archívum töltse le archívumunkat levelező.zip:
És itt van a korábban említett letöltési lehetőség API kulcs közvetlenül itt, ahelyett, hogy fájlt hozna létre a projektben .NS, és ne telepítse a csomagot dotenv. De mindezt már megtettük, ezért csak tájékoztatásul mutatom meg. Vagyis nem kell sokszorosítani!
Most a jobb felső sarokban kattintson a gombra Verzió létrehozása, és várjon néhány másodpercet. Ha minden készen van, automatikusan a szekcióba lépünk Értékelés. Ott engedélyezzük az opciót Nyilvános funkcióhogy kapcsolatba léphessen vele a külvilágból.
Látod a kék linket a felirattal szemben Hívás link? Kattints rá. Megnyílik egy üres böngészőablak... De várj - kaptam egy e-mailt:
Most visszatérhet a konzolhoz SendGrid, majd nyomja meg a gombot Integráció ellenőrzése. A rendszer mindent ellenőriz a csatornáin keresztül, és ennek eredményeként a következő képernyőt kell visszaadnia:
Ennyi, srácok (és persze lányok) – tényleg minden nagyon egyszerű és elegáns! Lesznek még cikkek. Ha valakit érdekel ilyesmi, iratkozzon fel, nehogy lemaradjon.
4. Adományok
Forrás: will.com