Hnub no peb yuav tsim lub npe hu ua. Yandex muaj nuj nqi (official npe
Kuv kuj yog ib tug neeg sib tw (tab sis tsis muaj fanaticism) ntawm ib txwm servers, thiab ib tug txhawb nqa ntawm lub thiaj li hu. serverless (serverless) cov kev daws teeb meem, vim kuv tsis nyiam (thiab kuv tsis paub yuav ua li cas) tswj cov servers, thiab ntau dua li, them rau lub sijhawm thaum lawv tsis thauj khoom. Lwm qhov yog cov haujlwm. Ib tug neeg pab lawv yam tsis muaj kuv, thiab kuv tsuas yog them rau kev hu. Thaum pib lub Kaum Hlis 2019, Yandex nthuav qhia nws Yandex Cloud Functions - zoo li yog thawj zaug hauv Lavxias Federation serverless. Thiab qhov zoo tshwj xeeb tshaj yog rau Alice cov txuj ci lawv feem ntau yog dawb, yog li lawv tau nyob hauv kuv lub zeem muag peripheral txij li thaum. Tab sis cia peb pib lawm.
Cia peb xav txog qhov xwm txheej no. Koj daim ntawv thov (piv txwv li, Alice's txawj
Hais txog yuav ua li cas los ntawm Yandex muaj nuj nqi ua cov ntawv nkag hauv database Huab Tua Hluav Taws peb twb saib nws nyob rau hauv qhov kev qhia
1. Tsim ib tus account hauv SendGrid
ΠΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΠ΅SendGrid tsuas yog kuv txoj kev xaiv, uas kuv tau ua rau ntau qhov laj thawj, qhov tseem ceeb yog tias lawv muaj SDK npaj txhij rau Node.js. Koj tuaj yeem xaiv lwm qhov kev pabcuam xa ntawv.
Cia peb mus
Hauv kauj ruam tom ntej peb xaiv node.js:
Tom ntej no peb tuaj rau peb API-key lub npe (yuav tsum tso tawm tsuas yog nyob rau hauv lub console nyob rau hauv daim ntawv teev cov yuam sij, thiab tsis muaj dab tsi ua rau peb yav tom ntej code; Kuv nyuam qhuav tuaj nrog imperishable demo-api-key) thiab nias lub pob Tsim tus yuam sij:
Tus yuam sij yuav raug tsim tawm, peb yuav luam tawm thiab khaws cia hauv qhov kev ntseeg siab tob tshaj plaws. Thiab peb yuav muaj lub vijtsam nrog lub pob Tshawb xyuas kev koom ua ke, raws li hauv daim duab hauv qab no, tab sis peb yuav tsis nyem nws tsis tau, tab sis cia peb txav mus rau kev sau cov lej:
2. Sau code
Tab sis txoj cai nws tus kheej, raws li koj tau pom, yog ridiculously me me - 22 kab!
Hauv kab #8 Kuv tus email yog hardcoded (thiab yog li txaj muag zais) - thov qhia koj li. Hauv lub neej tiag tiag, peb yuav tau txais tag nrho cov ntaub ntawv (xws li email) los ntawm cov khoom kev tshwm sim. Piv txwv li, yog txoj kev NCEJ ib yam khoom raug xa mus rau peb txoj haujlwm cov neeg siv nrog field (property) email, tus nqi ntawm daim teb no tuaj yeem tau txais zoo li no:
const { user } = event;
const email = user.email;
Thiab yog hais tias tus email chaw nyob yog dhau mus rau lub luag haujlwm siv txoj kev TAU, piv txwv: https://functions.yandexcloud.net/123abc?[email protected]
tus nqi parameter email koj tuaj yeem tau txais nws zoo li no:
const email = event.queryStringParameters.email;
Txhawm rau saib seb qhov twg muaj nyob hauv ib qho khoom kev tshwm sim, koj tuaj yeem tsim qhov yooj yim tshaj plaws Yandex muaj nuj nqi thiab twist nws nrog cov lus nug:
module.exports.handler = async function (event) {
return {
'statusCode': 200,
'body': JSON.stringify(event)
};
};
Qhov no tau tham ntau yam ntxiv (tab sis tsis meej meej) hauv cov ntaub ntawv raug cai
Yog li, tsim ib qhov project directory (piv txwv li, xa ntawv), mus rau nws, pib qhov project, nruab dependencies:
mkdir mailer
cd mailer
npm init -y
npm i @sendgrid/mail email-validator dotenv
Ntawm no tsuas yog lub pob yuav tsum tau @sendgrid/mail. Lub hnab yas email-validator tshawb xyuas email chaw nyob rau kev siv tau (ua li cas kuv tsis twv tam sim ntawd?), tab sis yog tias peb paub tseeb ntawm nws (nws twb tau kuaj xyuas lub sijhawm ntev tsis muaj peb), peb tsis tas yuav nruab nws (thiab, ntawm chav kawm, peb tsis tas yuav kuaj nws hauv qhov chaws). Lub hnab yas dotenv tsim los nyeem cov ntaub ntawv los ntawm cov ntaub ntawv .env raws li runtime variables. Tab sis nyob rau hauv Yandex muaj nuj nqi Nws muaj peev xwm muab cov hloov pauv no ncaj qha rau hauv qhov chaw khiav haujlwm. Yuav ua li cas? - Kuv mam li qhia hauv qab no. Yog li ntawd lub pob dotenv koj tuaj yeem tsis nruab nws, thiab cov ntaub ntawv .env - tsis txhob tsim, thiab tib lub sij hawm cov cai nyob rau hauv cov ntaub ntawv index.js tsis txhob hloov. Tab sis ntawm no peb tau teeb tsa lub pob no, yog li peb tsim cov ntaub ntawv index.js ΠΈ .env:
touch index.js
touch .env
Hauv cov ntaub ntawv index.js sau 22 kab ntawm cov lej qhia hauv lub screenshot saum toj no (tsuas yog hauv kab #8 hloov koj tus email), thiab hauv cov ntaub ntawv .env - (tsis muaj nqe lus los yog cov cim cim) qhia tus khub - lub npe tseem ceeb / tus nqi APIuas peb nyuam qhuav tau txais hauv console SendGrid:
SENDGRID_API_KEY=your-very-secret-sendgrid-api-key
Thiab yog tias koj xav tau kev ua haujlwm tsawg, clone lub repository thiab nruab cov pob khoom:
git clone https://github.com/stmike/ycf-sendgrid-mailer-tutorial.git
cd ycf-sendgrid-mailer-tutorial
npm i
Hauv cov ntaub ntawv index.js, hauv kab #8 hloov email; tsim ib cov ntaub ntawv hauv paus directory .env, thiab hauv nws qhia lub npe / tus nqi ntawm tus yuam sij API, raws li qhia saum toj no.
3. Tso tawm
Ntau los yog tsawg kom meej meej thiab nthuav dav txog Yandex.Cloud thiab yuav muab tso rau ntawd li cas Yandex muaj nuj nqi piav nyob rau hauv kuv tsab xov xwm
Peb tsim zip-archive (cia peb hu nws, piv txwv li, xa ntawv.zip), uas peb suav nrog cov npe node_modules thiab cov ntaub ntawv .env, index.js - Txhua yam ntawm peb qhov project catalog:
Peb tsim muaj nuj nqi nrog lub npe ... raug - xa ntawv, nyob rau sab laug navigation zaub mov peb nkag mus Tus editor, sau rau hauv cov teb xav tau, thiab hloov mus rau tab ZIP archive download peb archive xa ntawv.zip:
Thiab ntawm no yog qhov kev xaiv yav dhau los hais kom rub tawm API key ncaj qha ntawm no, tsis yog tsim cov ntaub ntawv hauv qhov project .env, thiab tsis txhob nruab lub pob dotenv. Tab sis peb twb tau ua tag nrho cov no, yog li kuv qhia nws tsuas yog rau cov ntaub ntawv. Uas yog, tsis muaj yuav tsum tau duplicate!
Tam sim no nyob rau sab xis saum toj ces nyem lub pob Tsim version, thiab tos ob peb feeb. Thaum txhua yam npaj txhij, peb yuav cia li mus rau ntu txheej txheem cej luam. Nyob ntawd peb yuav pab tau qhov kev xaiv Public functionkom koj tuaj yeem cuam tshuam nrog nws los ntawm lub ntiaj teb sab nraud.
Koj pom qhov txuas xiav rov qab cov ntawv sau Hu rau link? Nyem rau nws. Ib qhov browser khoob yuav qhib... Tab sis tos - Kuv tau txais email:
Tam sim no koj tuaj yeem rov qab mus rau console SendGrid, thiab nias lub pob Tshawb xyuas kev koom ua ke. Lub kaw lus yuav xyuas txhua yam los ntawm nws cov channel, thiab vim li ntawd nws yuav tsum rov qab lub vijtsam zoo li no:
Qhov ntawd yog nws, cov txiv neej (thiab cov ntxhais, tau kawg) - txhua yam yog qhov yooj yim heev thiab muaj kuab heev! Yuav muaj ntau cov lus. Yog leej twg xav nyeem tej yam zoo li no, subscribe kom koj tsis txhob plam.
4. Nyiaj pub dawb
Tau qhov twg los: www.hab.com