Fonksyon Yandex voye lapòs

Fonksyon Yandex voye lapòs

Jodi a nou pral kreye sa yo rele. Fonksyon Yandex (non ofisyèl Fonksyon Cloud Yandex), ki te kole ak sèvis lapòs la SendGrid pral voye "savon" bay itilizatè k ap dòmi nan lapè (jis plèzantri - mwen konnen ke nou tout kont spam).

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 Sonje epi bliye ki, nan chemen an, tou travay sou Fonksyon Yandex) envite itilizatè a achte yon pwodwi dijital, pou egzanp, opsyon adisyonèl, epi itilizatè a fè yon peman. Gen kèk kalite sistèm peman (konfizyon menm jan ak Yandex.Money) trete peman an epi voye li nan adrès ou bay la (epi nou pral gen yon lyen pou rele Fonksyon Yandex) HTTP-yon demann ki gen detay peman, tankou kantite lajan, non konplè, nimewo telefòn ak imèl moun ki peye a. Nou vle trete done sa yo nan kèk fason, pou egzanp: tcheke kantite lajan an, fè antre apwopriye nan baz done a, voye bay itilizatè yo. SMS и Imèl ak konfimasyon pou resevwa peman ak plis enstriksyon. Se konsa, tèt ou mikwosèvis.

Konsènan ki jan soti Fonksyon Yandex fè antre nan baz done a Cloud Firestore nou te deja gade li nan leson patikilye a Alice sonje tout bagay (ak nan lavni an, mwen panse, nou pral konsidere yon egzanp pou yon lòt baz done - Yandex baz done). Konsènan kòman yo voye bay itilizatè yo SMS ak entegre aplikasyon nou an ak Yandex.Money - nou pral regle li nan fiti prè. Koulye a, an n jis fè fas ak voye lèt.

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 paj anrejistreman kont lan epi ranpli fòm enskripsyon an la. Lè sa a, nou ale nan Dachbord, nan panèl navigasyon an chwazi Imèl API -> Gid Entegrasyon, ak sou panèl prensipal la - WebAPI epi peze bouton an Chwazi. Tout bagay se tankou nan foto a:

Fonksyon Yandex voye lapòs

Nan pwochen etap la nou chwazi Node.js:

Fonksyon Yandex voye lapòs

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:

Fonksyon Yandex voye lapòs

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:

Fonksyon Yandex voye lapòs

2. Ekri kòd

Men, kòd la tèt li, jan ou ka wè, se ridikil piti - 22 liy!

Fonksyon Yandex voye lapòs

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 isit 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 Sou entènèt jwèt Alice nan Bitrix Tè - Mwen voye moun ki inyoran nan peyi sa a, ak pou tout lòt moun (ak moun ki te retounen) - Lè sa a, yon ti liv komik (sa vle di yon seri foto ak tèks).

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:

Fonksyon Yandex voye lapòs

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:

Fonksyon Yandex voye lapòs

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!

Fonksyon Yandex voye lapòs

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

Fonksyon Yandex voye lapòs

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:

Fonksyon Yandex voye lapòs

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:

Fonksyon Yandex voye lapòs

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

Fonksyon Yandex voye lapòs

Sous: www.habr.com

Add nouvo kòmantè