Jodi a nou pral kreye sa yo rele. Fonksyon Yandex (non ofisyèl
Mwen se tou yon opozan (men san fanatik) nan serveurs tradisyonèl yo, ak yon sipòtè nan sa yo rele. sèvè (san sèvè) solisyon, paske mwen pa renmen (e mwen pa vrèman konnen ki jan yo) administre serveurs, e menm plis konsa, peye pou tan an lè yo pa chaje. Yon lòt bagay se fonksyon. Yon moun sèvi yo san mwen, epi mwen sèlman peye pou apèl yo. Nan kòmansman mwa Oktòb 2019, Yandex te prezante li Fonksyon Cloud Yandex - sanble se premye a nan Federasyon Larisi la sèvè. Ak sa ki espesyalman bèl se ke pou konpetans Alice a yo jeneralman gratis, kidonk yo te nan vizyon periferik mwen depi tout tan. Men, ann kòmanse deja.
Ann imajine senaryo sa a. Aplikasyon w lan (pa egzanp, konpetans Alice
Konsènan ki jan soti Fonksyon Yandex fè antre nan baz done a Cloud Firestore nou te deja gade li nan leson patikilye a
1. Kreye yon kont nan SendGrid
NoteSendGrid se jis chwa mwen, ke mwen te fè pou plizyè rezon, youn nan prensipal yo ke yo gen yon SDK pare pou Node.js. Ou ka chwazi nenpòt lòt sèvis lapòs.
Ann avanse
Nan pwochen etap la nou chwazi Node.js:
Next nou vini ak pou nou API-key name (yo pral parèt sèlman nan konsole a nan lis kle yo, epi pa gen anyen fè ak kòd lavni nou an; mwen te vini ak yon enperisab Demo-api-key) epi peze bouton an Kreye kle:
Kle a pral pwodwi, nou pral kopye li epi kenbe li nan konfyans ki pi pwofon. Epi nou pral gen yon ekran ak yon bouton Verifye Entegrasyon, tankou nan foto ki anba a, men nou pa pral klike sou li ankò, men ann ale nan ekri kòd la:
2. Ekri kòd
Men, kòd la tèt li, jan ou ka wè, se ridikil piti - 22 liy!
Nan liy #8 Imèl mwen an kode di (e poutèt sa timidman kache) - tanpri endike pa w la. Nan lavi reyèl, nou pral resevwa tout done yo (ki gen ladan imel) soti nan objè evènman. Pou egzanp, si metòd la POST yo voye yon objè nan fonksyon nou an itilizatè ak jaden (pwopriyete) imel, valè jaden sa a ka jwenn tankou sa a:
const { user } = event;
const email = user.email;
Men, si se adrès imel la pase nan fonksyon an lè l sèvi avèk metòd la JWENNpa egzanp: https://functions.yandexcloud.net/123abc?[email protected]
valè paramèt imel ou ka jwenn li tankou sa a:
const email = event.queryStringParameters.email;
Pou pran yon gade nan ki sa egzakteman ki genyen nan yon objè evènman, ou ka kreye pi senp la Fonksyon Yandex epi tòde li ak demann:
module.exports.handler = async function (event) {
return {
'statusCode': 200,
'body': JSON.stringify(event)
};
};
Sa a se diskite an plis detay (men mwens klè) nan dokiman ofisyèl la
Se konsa, kreye yon anyè pwojè (pa egzanp, poste), ale nan li, inisyalize pwojè a, enstale depandans:
mkdir mailer
cd mailer
npm init -y
npm i @sendgrid/mail email-validator dotenv
Isit la se sèlman pake a obligatwa @sendgrid/mail. Sache plastik imel-validator tcheke adrès imel la pou validite (ki jan mwen pa t 'devine touswit?), men si nou sèten de li (li te deja tcheke pou yon tan long san nou), nou pa bezwen enstale li (e, nan kou, nou pa oblije tcheke li nan kòd la). Sache plastik dotenv fèt pou li dosye ki soti nan yon dosye .env kòm varyab ègzekutabl. Men nan Fonksyon Yandex Li posib yo mete varyab sa yo dirèkteman nan anviwònman an ègzekutabl. Ki jan? - Mwen pral montre li anba a. Se poutèt sa pake a dotenv ou kapab tou pa enstale li, ak dosye a .env - pa kreye, epi an menm tan an kòd la nan dosye a index.js pa chanje. Men, isit la nou te enstale pake sa a, se konsa nou kreye dosye index.js и .env:
touch index.js
touch .env
Nan dosye index.js ekri 22 liy kòd yo montre nan ekran ki anwo a (sèlman nan liy lan #8 chanje imel ou), ak nan dosye a .env - (san okenn sitasyon oswa ponktiyasyon) presize pè a - non kle/valè APIke nou fèk resevwa nan konsole a SendGrid:
SENDGRID_API_KEY=kle-api-sendgrid-trè-sekrè-ou
Men, si ou vle mwens travay, klonaj repozitwa a epi enstale pakè yo:
git clone https://github.com/stmike/ycf-sendgrid-mailer-tutorial.git
cd ycf-sendgrid-mailer-tutorial
npm i
Nan dosye index.js, nan liy #8 chanje imèl; kreye yon fichye nan anyè rasin lan .env, epi ladan l endike non/valè kle a API, jan yo montre jis pi wo a.
3. Deplwaye
Plis oswa mwens klè ak an detay sou Yandex.Cloud ak kijan pou mete l la Fonksyon Yandex dekri nan atik mwen an
Nou kreye postal-achiv (an nou rele li, pou egzanp, mailer.zip), nan ki nou enkli anyè a node_modules ak dosye .env, index.js - tout bagay soti nan katalòg pwojè nou an:
Nou kreye yon fonksyon ak non an... kòrèkteman - poste, nan meni navigasyon gòch la nou antre Editè a, ranpli jaden obligatwa yo, epi chanje nan tab la ZIP achiv telechaje achiv nou an mailer.zip:
Ak isit la se opsyon ki deja mansyone yo telechaje Kle API dirèkteman isit la, olye ke kreye yon dosye nan pwojè a .env, epi pa enstale pake a dotenv. Men, nou te deja fè tout bagay sa yo, kidonk mwen montre li jis pou enfòmasyon. Sa vle di, pa gen okenn nesesite pou kopi!
Koulye a, nan kwen anwo dwat klike sou bouton an Kreye vèsyon an, epi tann yon koup de segonn. Lè tout bagay pare, nou pral otomatikman ale nan seksyon an Revize. Se la nou pral pèmèt opsyon an Fonksyon piblikpou ou ka kominike avèk li soti nan mond lan deyò.
Ou wè lyen ble anfas enskripsyon an Rele lyen? Klike sou li. Yon fenèt navigatè vid ap louvri... Men, tann - Mwen te resevwa yon imèl:
Koulye a, ou ka retounen nan konsole a SendGrid, epi peze bouton an Verifye Entegrasyon. Sistèm nan pral tcheke tout bagay atravè chanèl li yo, epi kòm yon rezilta li ta dwe retounen yon ekran tankou sa a:
Sa a, mesye (ak ti fi, nan kou) - tout bagay se reyèlman trè senp ak elegant! Pral gen plis atik. Si yon moun enterese li yon bagay konsa, abònman pou w pa rate.
4. Don
Sous: www.habr.com