Karong adlawa atong mugnaon ang gitawag nga. Yandex function (opisyal nga ngalan
Usa usab ako ka kontra (apan walay panatisismo) sa tradisyonal nga mga tigtagad, ug usa ka tigpaluyo sa gitawag nga. serverless (wala'y server) nga mga solusyon, tungod kay dili ko ganahan (ug dili gyud ko kabalo kung unsaon) pagdumala sa mga server, ug labi pa, pagbayad sa oras kung wala sila gikarga. Ang laing butang mao ang mga function. Adunay nagserbisyo kanila nga wala ako, ug nagbayad lang ako sa mga tawag. Sa sinugdanan sa Oktubre 2019, gipresentar sa Yandex ang Yandex Cloud Functions - daw mao ang una sa Russian Federation serverless. Ug unsa ang labi ka nindot mao nga alang sa mga kahanas ni Alice sila sa kasagaran libre, mao nga naa sila sa akong peripheral nga panan-aw sukad niadto. Pero sugdan na nato.
Hunahunaa kini nga senaryo. Ang imong aplikasyon (pananglitan, kahanas ni Alice
Mahitungod kung giunsa gikan Yandex function paghimo og mga entry sa database Cloud Firestore gitan-aw na namo kini sa tutorial
1. Paghimo og account sa SendGrid
ΠΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΠ΅Ang SendGrid mao ra ang akong gipili, nga akong gihimo sa daghang mga hinungdan, ang panguna mao nga sila adunay andam nga SDK alang sa Node.js. Makapili ka ug lain pang serbisyo sa pagpadala.
Magpadayon ta
Sa sunod nga lakang atong pilion Node.js:
Sunod atong buhaton para sa atong API-key nga ngalan (mapakita ra sa console sa lista sa mga yawe, ug walaβy labot sa among umaabot nga code; bag-o lang ako nga adunay usa ka dili madunot demo-api-key) ug i-press ang buton Paghimo Key:
Mabuhat ang yawe, kopyahon namon kini ug tipigan kini sa labing lawom nga pagsalig. Ug kita adunay usa ka screen nga adunay usa ka buton I-verify ang Integration, sama sa hulagway sa ubos, apan dili pa nato kini i-klik, apan magpadayon kita sa pagsulat sa code:
2. Kodigo sa pagsulat
Apan ang code mismo, ingon sa imong makita, kataw-anan nga gamay - 22 ka linya!
Sa linya #8 Ang akong email gi-hardcode (ug busa maulawon nga gitago) - palihug ipakita ang imo. Sa tinuud nga kinabuhi, madawat namon ang tanan nga datos (lakip ang email) gikan sa butang nga panghitabo. Pananglitan, kung ang pamaagi POST usa ka butang ang gipadala sa among function user uban sa uma (property) email, ang bili niini nga uma mahimong makuha sama niini:
const { user } = event;
const email = user.email;
Ug kung ang email address ipasa sa function gamit ang pamaagi GETsama pananglit: https://functions.yandexcloud.net/123abc?[email protected]
bili sa parameter email makuha nimo kini sama niini:
const email = event.queryStringParameters.email;
Aron tan-awon kung unsa gyud ang naa sa usa ka butang nga panghitabo, makahimo ka sa pinakasimple Yandex function ug i-twist kini sa mga pangutana:
module.exports.handler = async function (event) {
return {
'statusCode': 200,
'body': JSON.stringify(event)
};
};
Gihisgotan kini sa mas detalyado (apan dili kaayo klaro) sa opisyal nga dokumentasyon
Busa, paghimo og direktoryo sa proyekto (pananglitan, mga mailers), adto niini, pagsugod sa proyekto, pag-instalar sa mga dependency:
mkdir mailer
cd mailer
npm init -y
npm i @sendgrid/mail email-validator dotenv
Dinhi ang pakete ra ang gikinahanglan @sendgrid/mail. Plastic nga bag email-validator Gisusi ang email address alang sa pagkabalido (giunsa nga wala ako makatag-an dayon?), apan kung sigurado kami niini (nasusi na kini sa dugay nga panahon nga wala kami), dili na namon kinahanglan i-install kini (ug, sa Siyempre, dili na nato kinahanglan nga susihon kini sa code). Plastic nga bag dotenv gidisenyo sa pagbasa sa mga rekord gikan sa usa ka file .env ingon runtime variables. Apan sa Yandex function Posible nga ibutang kini nga mga variable direkta sa runtime nga palibot. Giunsa? - Ipakita ko kini sa ubos. Busa ang package dotenv dili usab nimo ma-install kini, ug ang file .env - ayaw paghimo, ug sa samang higayon ang code anaa sa file index.js ayaw usba. Apan dinhi among gi-install kini nga pakete, mao nga naghimo kami og mga file index.js ΠΈ .env:
touch index.js
touch .env
Sa file index.js pagsulat og 22 ka linya sa code nga gipakita sa screenshot sa ibabaw (sa linya lang #8 usba ang imong email), ug sa file .env - (walay bisan unsang mga kinutlo o punctuation) ipiho ang pares - yawe nga ngalan/bili APInga bag-o lang namon nadawat sa console SendGrid:
SENDGRID_API_KEY=imong-kaayo-sekreto-sendgrid-api-key
Ug kung gusto nimo ang gamay nga trabaho, i-clone ang repository ug i-install ang mga pakete:
git clone https://github.com/stmike/ycf-sendgrid-mailer-tutorial.git
cd ycf-sendgrid-mailer-tutorial
npm i
Sa file index.js, sa linya #8 pagbag-o sa email; paghimo og file sa root directory .env, ug diha niini nagpakita sa ngalan/bili sa yawe API, ingon sa gipakita sa ibabaw.
3. Ipakaylap
Labaw o dili kaayo klaro ug detalyado bahin sa Yandex.Cloud ug unsaon pagbutang niini didto Yandex function gihulagway sa akong artikulo
Kami nagmugna zip-archive (tawgon nato kini, pananglitan, mailer.zip), diin among gilakip ang direktoryo node_modules ug mga file .env, index.js - tanan gikan sa among katalogo sa proyekto:
Naghimo kami usa ka function nga adunay ngalan ... husto - mga mailers, sa wala nga navigation menu kita mosulod Ang editor, sulati ang gikinahanglan nga mga natad, ug ibalhin ngadto sa tab ZIP archive i-download ang among archive mailer.zip:
Ug ania ang nahisgutan nga kapilian sa pag-download yawe sa API direkta dinhi, kay sa paghimo og file sa proyekto .env, ug ayaw i-install ang package dotenv. Apan nahimo na nato kining tanan, busa gipakita ko kini alang lamang sa impormasyon. Sa ato pa, dili na kinahanglang duplicate!
Karon sa ibabaw nga tuo nga suok i-klik ang buton Paghimo Bersyon, ug paghulat pipila ka segundo. Kung andam na ang tanan, awtomatiko namong moadto sa seksyon kinatibuk-ang paghulagway. Didto atong palihokon ang kapilian publiko nga gimbuhatonaron ikaw makig-uban niini gikan sa gawas nga kalibutan.
Nakita nimo ang asul nga sumpay sa atbang sa inskripsiyon Link sa pagtawag? I-klik kini. Usa ka walay sulod nga bintana sa browser ang moabli... Apan paghulat - Nakadawat ko og email:
Karon makabalik ka sa console SendGrid, ug pindota ang buton I-verify ang Integration. Susihon sa sistema ang tanan pinaagi sa mga kanal niini, ug ingon usa ka sangputanan kinahanglan nga ibalik ang usa ka screen nga sama niini:
Mao ra kana, mga lalaki (ug mga babaye, siyempre) - ang tanan yano ra kaayo ug elegante! Adunay dugang nga mga artikulo. Kung adunay interesado nga magbasa sama niini, pag-subscribe aron dili ka masipyat.
4. Mga donasyon
Source: www.habr.com