Imisebenzi ye-Yandex ithumela i-imeyili

Imisebenzi ye-Yandex ithumela i-imeyili

Namuhla sizodala okuthiwa. Umsebenzi we-Yandex (igama elisemthethweni Imisebenzi ye-Yandex Cloud), okuhlangene nesevisi yokuposa I-SendGrid izothumela β€œinsipho” kubasebenzisi abalele ngokuthula (ukudlala nje - ngiyazi ukuthi sonke simelene nogaxekile).

Ngiphinde ngimelene (kodwa ngaphandle kokushisekela) kwamaseva endabuko, kanye nomsekeli walokho okubizwa. serverless (ezingenasiphakeli) izixazululo, ngoba angithandi (futhi angazi ngempela) ukuphatha amaseva, futhi ngisho nangaphezulu, ukukhokhela isikhathi lapho zingalayishiwe. Enye into imisebenzi. Othile uyabasiza ngaphandle kwami, futhi ngikhokhela izingcingo kuphela. Ekuqaleni kuka-Okthoba 2019, i-Yandex yethula yayo Imisebenzi ye-Yandex Cloud - kubonakala sengathi ngowokuqala eRussian Federation serverless. Futhi okuhle kakhulu ukuthi ngamakhono ka-Alice ngokuvamile akhululekile, ngakho abelokhu embonweni wami oseduze kusukela ngaleso sikhathi. Kodwa ake siqale kakade.

Ake sicabange ngalesi simo. Isicelo sakho (isibonelo, ikhono lika-Alice Khumbula futhi Ukhohlwe okuyinto, ngendlela, futhi isebenza kuyo Imisebenzi ye-Yandex) imema umsebenzisi ukuthi athenge umkhiqizo wedijithali, isibonelo, izinketho ezengeziwe, futhi umsebenzisi wenza inkokhelo. Uhlobo oluthile lwesistimu yokukhokha (edidayo efana ne Yandex.Money) icubungula inkokhelo futhi iyithumele ekhelini osinikezile (futhi sizoba nesixhumanisi esingasishayela Imisebenzi ye-Yandex) HTTP-isicelo esiqukethe imininingwane yokukhokha, njengenani, igama eligcwele, inombolo yocingo kanye ne-imeyili yomkhokhi. Sifuna ukucubungula le datha ngandlela thize, isibonelo: hlola inani, faka okufanelekile kusizindalwazi, thumela kubasebenzisi. SMS ΠΈ imeyili ngesiqinisekiso sokutholwa kwenkokhelo kanye neminye imiyalelo. Ngakho wena microservice.

Mayelana nokuthi kusuka kanjani Imisebenzi ye-Yandex yenza okufakiwe kusizindalwazi I-Cloud Firestore sesivele sikubhekile esifundweni U-Alice ukhumbula yonke into (futhi esikhathini esizayo, ngicabanga, sizocubungula isibonelo sesinye isizindalwazi - Yandex Database). Mayelana nendlela yokuthumela kubasebenzisi SMS futhi sihlanganise isicelo sethu ne Yandex.Money - sizoyilungisa esikhathini esizayo esiseduze. Manje ake sibhekane nokuthumela izincwadi.

1. Dala i-akhawunti ku-SendGrid

UkubhalaI-SendGrid iwukukhetha kwami ​​nje, engikwenze ngenxa yezizathu ezimbalwa, esiyinhloko ukuthi bane-SDK eseyenziwe ngomumo ye-Node.js. Ungakhetha noma iyiphi enye isevisi yokuposa.

Asiqhubeke ekhasini lokubhalisa i-akhawunti bese ugcwalisa ifomu lokubhalisa lapho. Bese siya ku Dashboard, kuphaneli yokuzulazula khetha I-imeyili API -> Integration Guide, nakuphaneli enkulu - I-Web API futhi Π½Π°ΠΆΠΈΠΌΠ°Π΅ΠΌ ΠΊΠ½ΠΎΠΏΠΊΡƒ Khetha. Konke kunjengoba kuboniswe esithombeni:

Imisebenzi ye-Yandex ithumela i-imeyili

Esinyathelweni esilandelayo sikhetha I-Node.js:

Imisebenzi ye-Yandex ithumela i-imeyili

Okulandelayo sifika nokwethu API-igama elingukhiye (lizovezwa kuphela kukhonsoli ohlwini lokhiye, futhi alihlangene nekhodi yethu yesikhathi esizayo; ngisanda kuthola into engenakonakala. demo-api-key) bese ucindezela inkinobho Dala ukhiye:

Imisebenzi ye-Yandex ithumela i-imeyili

Ukhiye uzokhiqizwa, sizowukopisha futhi siwugcine ngokuzethemba okujulile. Futhi sizoba nesikrini esinenkinobho Qinisekisa Ukuhlanganisa, njengasesithombeni esingezansi, kodwa ngeke siyichofoze okwamanje, kodwa asiqhubekele ekubhaleni ikhodi:

Imisebenzi ye-Yandex ithumela i-imeyili

2. Ikhodi yokubhala

Kodwa ikhodi ngokwayo, njengoba ubona, incane ngokuhlekisayo - imigqa engu-22!

Imisebenzi ye-Yandex ithumela i-imeyili

Emugqeni #8 I-imeyili yami inekhodi eqinile (ngakho ifihliwe ngamahloni) - ngicela ubonise eyakho. Empilweni yangempela, sizothola yonke idatha (kuhlanganise imeyili) kusuka entweni umcimbi. Ngokwesibonelo, uma indlela I-POST into ithunyelwa emsebenzini wethu umsebenzisi nensimu (indawo) imeyili, inani lale nkambu lingatholakala kanje:

const { user } = event;
const email = user.email;

Futhi uma ikheli le-imeyili lidluliselwa kuhlelo kusetshenziswa indlela Tholaisibonelo: https://functions.yandexcloud.net/123abc?[email protected]
inani lepharamitha imeyili ungayithola kanje:

const email = event.queryStringParameters.email;

Ukubheka ukuthi yini ngempela equkethwe entweni umcimbi, ungakha okulula kakhulu Umsebenzi we-Yandex bese uyisonta ngemibuzo:

module.exports.handler = async function (event) {
  return {
   'statusCode': 200, 
   'body': JSON.stringify(event)
  };
};

Lokhu kuxoxwa ngakho ngokuningiliziwe (kodwa okungacacile) emibhalweni esemthethweni lapha.

Ngakho-ke, yakha inkomba yephrojekthi (isibonelo, umthumeli), yiya kuyo, qalisa iphrojekthi, faka ukuncika:

mkdir mailer
cd mailer
npm init -y
npm i @sendgrid/mail email-validator dotenv

Lapha kuphela iphakheji elidingekayo @sendgrid/mail. Isikhwama sepulasitiki i-imeyili-isiqinisekisi ihlola ikheli le-imeyili ukuze liqiniseke (angizange ngiqagele kanjani ngaleso sikhathi?), kodwa uma siqinisekile ngalo (sesivele lihloliwe isikhathi eside ngaphandle kwethu), akudingeki silifake (futhi, kunjalo, akumele sikuhlole kukhodi). Isikhwama sepulasitiki dotenv yakhelwe ukufunda amarekhodi efayelini .inv njengokuguquguquka kwesikhathi sokusebenza. Kodwa ku Imisebenzi ye-Yandex Kungenzeka ukubeka lezi ziguquguqukayo ngqo endaweni yesikhathi sokusebenza. Kanjani? - Ngizokukhombisa ngezansi. Ngakho-ke iphakheji dotenv awukwazi futhi ukuyifaka, kanye nefayela .inv - ungadali, futhi ngesikhathi esifanayo ikhodi isefayeleni index.js ungashintshi. Kodwa lapha sifake le phakheji, ngakho-ke sakha amafayela index.js ΠΈ .inv:

touch index.js
touch .env

Kufayela index.js bhala imigqa yekhodi engama-22 eboniswe esithombeni ngenhla (emgqeni kuphela #8 shintsha i-imeyili yakho), nakufayela .inv - (ngaphandle kwanoma yiziphi izingcaphuno noma izimpawu zokuloba) cacisa ipheya - igama/inani elingukhiye APIesisanda kuyithola kukhonsoli I-SendGrid:
SENDGRID_API_KEY=ukhiye wakho-oyimfihlo kakhulu-sendgrid-api-key

Futhi uma ufuna umsebenzi omncane, hlanganisa indawo yokugcina bese ufaka amaphakheji:

git clone https://github.com/stmike/ycf-sendgrid-mailer-tutorial.git
cd ycf-sendgrid-mailer-tutorial
npm i

Kufayela index.js, emugqeni #8 shintsha i-imeyili; dala ifayela kumkhombandlela wezimpande .inv, futhi kuyo ikhombise igama/inani likakhiye API, njengoba kuboniswe ngenhla.

3. Phakamisa

Ngokucacile noma ngaphansi ngokuningiliziwe mayelana I-Yandex.Cloud nendlela yokuyibeka lapho Imisebenzi ye-Yandex kuchazwe esihlokweni sami U-Alice Ezweni Le-Bitrix - Ngithumela abangenalwazi kuleli zwe, nakuwo wonke umuntu (kanye nalabo ababuyile) - bese kuba incwadi encane yamahlaya (okungukuthi uchungechunge lwezithombe nombhalo).

Siyadala zip-ingobo yomlando (ake siyibize, isibonelo, i-mailer.zip), lapho sifaka khona uhla lwemibhalo ama-node_modules kanye namafayela .env, index.js - konke okuvela kukhathalogi yethu yephrojekthi:

Imisebenzi ye-Yandex ithumela i-imeyili

Sakha umsebenzi ngegama... ngendlela efanele - umthumeli, kumenyu yesokunxele yokuzulazula esiyifakayo Umhleli, gcwalisa izinkambu ezidingekayo, bese ushintshela kuthebhu Ingobo yomlando ye-ZIP landa ingobo yethu yomlando i-mailer.zip:

Imisebenzi ye-Yandex ithumela i-imeyili

Futhi nansi inketho eshiwo ngaphambilini yokulanda Ukhiye we-API ngqo lapha, kunokudala ifayela kuphrojekthi .inv, futhi ungalifaki iphakheji dotenv. Kodwa sesivele sikwenzile konke lokhu, ngakho ngikukhombisa ulwazi nje. Okusho ukuthi, asikho isidingo sokuphinda!

Imisebenzi ye-Yandex ithumela i-imeyili

Manje ekhoneni eliphezulu kwesokudla chofoza inkinobho Dala inguqulo, bese ulinda imizuzwana embalwa. Uma konke sekumi ngomumo, sizoya esigabeni ngokuzenzakalelayo Uhlolojikelele. Lapho sizovumela inketho Umsebenzi womphakathiukuze ukwazi ukusebenzisana nalo kusuka emhlabeni wangaphandle.

Imisebenzi ye-Yandex ithumela i-imeyili

Ubona isixhumanisi esiluhlaza okwesibhakabhaka esibhekene nombhalo Isixhumanisi sekholi? Yichofoze. Iwindi lesiphequluli elingenalutho lizovuleka... Kodwa linda - ngithole i-imeyili:

Imisebenzi ye-Yandex ithumela i-imeyili

Manje ungabuyela kukhonsoli I-SendGrid, bese ucindezela inkinobho Qinisekisa Ukuhlanganisa. Uhlelo luzohlola yonke into ngeziteshi zalo, futhi ngenxa yalokho kufanele lubuyisele isikrini esinjengalesi:

Imisebenzi ye-Yandex ithumela i-imeyili

Yilokho, abafana (namantombazane, kunjalo) - konke kulula kakhulu futhi kunhle! Kuzoba nezihloko ezengeziwe. Uma kukhona umuntu onentshisekelo yokufunda into efana nale, bhalisa ukuze ungaphuthelwa.

4. Iminikelo

Imisebenzi ye-Yandex ithumela i-imeyili

Source: www.habr.com

Engeza amazwana