Yandex ntchito kutumiza makalata

Yandex ntchito kutumiza makalata

Lero tidzapanga otchedwa. Yandex ntchito (dzina lovomerezeka Yandex Cloud Functions), zomwe zinagwirizana ndi ntchito yotumizira makalata SendGrid idzatumiza "sopo" kwa ogwiritsa ntchito omwe akugona mwamtendere (kungoseka - ndikudziwa kuti tonse timatsutsana ndi sipamu).

Ndinenso wotsutsa (koma wopanda kutengeka) kwa ma seva achikhalidwe, komanso wothandizira otchedwa. serverless (zopanda seva) zothetsera, chifukwa sindimakonda (ndipo sindikudziwa kwenikweni) kuyang'anira ma seva, ndipo makamaka, kulipira nthawi yomwe sakunyamulidwa. Chinthu china ndi ntchito. Winawake amawathandizira popanda ine, ndipo ndimalipira mafoni okha. Kumayambiriro kwa Okutobala 2019, Yandex idawonetsa zake Yandex Cloud Functions - zikuwoneka ngati woyamba mu Russian Federation serverless. Ndipo chomwe chili chabwino kwambiri ndichakuti chifukwa cha luso la Alice nthawi zambiri amakhala aulere, chifukwa chake akhala ali m'masomphenya anga kuyambira pamenepo. Koma tiyeni tiyambe kale.

Tiyeni tiyerekeze zimenezi. Ntchito yanu (mwachitsanzo, luso la Alice Kumbukirani ndi Kuyiwala zomwe, mwa njira, zimagwiranso ntchito Yandex ntchito) imapempha wogwiritsa ntchito kugula chinthu cha digito, mwachitsanzo, zosankha zowonjezera, ndipo wogwiritsa ntchito amapereka malipiro. Mtundu wina wamalipiro (zosokoneza zofanana ndi Yandex.Money) amakonza zolipirazo ndikuzitumiza ku adilesi yomwe mwapereka (ndipo tidzakhala ndi ulalo wotiyimbira foni Yandex ntchito) HTTP- pempho lomwe lili ndi zambiri zolipira, monga kuchuluka, dzina lonse, nambala yafoni ndi imelo ya wolipira. Tikufuna kukonza izi mwanjira ina, mwachitsanzo: fufuzani kuchuluka kwake, pangani zolemba zoyenera mu database, kutumiza kwa ogwiritsa ntchito. sms ΠΈ Email ndi kutsimikizira kuti walandira malipiro ndi malangizo ena. Choncho inunso microservice.

Za momwe kuchokera Yandex ntchito kupanga zolemba mu database Cloud Firestore tinaziwona kale mu phunziroli Alice amakumbukira chilichonse (ndipo mtsogolomu, ndikuganiza, tilingalira chitsanzo cha database ina - Yandex Database). Za momwe mungatumizire kwa ogwiritsa ntchito sms ndikuphatikiza pulogalamu yathu ndi Yandex.Money -Tizikonza posachedwa. Tsopano tiyeni tingochita ndi kutumiza makalata.

1. Pangani akaunti mu SendGrid

ndemangaSendGrid ndikusankha kwanga, komwe ndidapanga pazifukwa zingapo, chachikulu ndikuti ali ndi SDK yokonzekera Node.js. Mutha kusankha ntchito ina iliyonse yamakalata.

Tiyeni tipitirire kutsamba lolembetsa akaunti ndipo lembani fomu yolembetsa pamenepo. Kenako timapita lakutsogolo, mu gulu la navigation sankhani Email API -> Integration Guide, ndi pagulu lalikulu - WebAPI ndi Π½Π°ΠΆΠΈΠΌΠ°Π΅ΠΌ ΠΊΠ½ΠΎΠΏΠΊΡƒ Sankhani. Chilichonse chili monga pachithunzichi:

Yandex ntchito kutumiza makalata

Mu sitepe yotsatira ife kusankha Node.js:

Yandex ntchito kutumiza makalata

Kenako timabwera ndi zathu API-dzina lofunikira (lidzawonetsedwa kokha mu console pamndandanda wa makiyi, ndipo ilibe kanthu kochita ndi code yathu yamtsogolo; Ndidabwera ndi chosawonongeka demo-api-key) ndikudina batani Pangani Chinsinsi:

Yandex ntchito kutumiza makalata

Chinsinsi chidzapangidwa, tidzachikopera ndikuchisunga mozama kwambiri. Ndipo tidzakhala ndi chophimba ndi batani Tsimikizani Kuphatikiza, monga momwe zilili pachithunzi pansipa, koma sitidzadinabe, koma tiyeni tipitirire kulemba kachidindo:

Yandex ntchito kutumiza makalata

2. Khodi yolembera

Koma code yokha, monga mukuonera, ndi yaing'ono mopusa - mizere 22!

Yandex ntchito kutumiza makalata

Motsatana #8 Imelo yanga ndi ya hardcode (ndipo yobisika mwamanyazi) - chonde onetsani yanu. M'moyo weniweni, tidzalandira zonse (kuphatikiza imelo) kuchokera ku chinthu chochitika. Mwachitsanzo, ngati njira POST chinthu chimatumizidwa ku ntchito yathu wosuta ndi munda (katundu) imelo, mtengo wamundawu ukhoza kupezeka motere:

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

Ndipo ngati adilesi ya imelo yaperekedwa ku ntchitoyo pogwiritsa ntchito njirayo GETANI, mwachitsanzo: https://functions.yandexcloud.net/123abc?[email protected]
mtengo wa parameter imelo mukhoza kuzipeza motere:

const email = event.queryStringParameters.email;

Kuti muwone zomwe zili mu chinthu chochitika, mutha kupanga zosavuta Yandex ntchito ndi kuwapotoza ndi mafunso:

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

Izi zikukambidwa mwatsatanetsatane (koma mocheperapo) muzolemba zovomerezeka apa.

Chifukwa chake, pangani chikwatu cha polojekiti (mwachitsanzo, wopanga), pitani kwa iyo, yambitsani polojekitiyo, yikani zodalira:

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

Apa phukusi lokha ndilofunika @sendgrid/mail. Chikwama chapulasitiki imelo-validator imayang'ana adilesi ya imelo kuti ndiyovomerezeka (momwe sindinaganizirepo nthawi yomweyo?), Koma ngati tili otsimikiza (yafufuzidwa kale kwa nthawi yayitali popanda ife), sitiyenera kuyiyika (ndipo, ya Inde, sitiyenera kuyang'ana mu code). Chikwama chapulasitiki pansi adapangidwa kuti aziwerenga zolemba kuchokera mufayilo .fm monga zosintha za nthawi yothamanga. Koma mu Yandex ntchito Ndizotheka kuyika zosinthazi molunjika kumalo othamanga. Bwanji? - Ndiziwonetsa pansipa. Choncho paketi pansi simungathenso kukhazikitsa, ndi wapamwamba .fm - osalenga, ndipo nthawi yomweyo code ili mu fayilo index.js osasintha. Koma apa tayika phukusili, kotero timapanga mafayilo index.js ΠΈ .fm:

touch index.js
touch .env

Mu fayilo index.js lembani mizere 22 yamakhodi omwe akuwonetsedwa pazithunzi pamwambapa (pamzere wokhawo #8 sinthani imelo yanu), ndi mu fayilo .fm - (popanda mawu kapena zopumira) tchulani awiriwo - dzina lofunikira/mtengo APIzomwe talandira posachedwa mu console SendGrid:
SENDGRID_API_KEY=key-secret-sendgrid-api-key

Ndipo ngati mukufuna ntchito yocheperako, phatikizani zosungira ndikuyika phukusi:

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

Mu fayilo index.js, motsatana #8 kusintha imelo; pangani fayilo mu root directory .fm, ndipo m'menemo amasonyeza dzina/mtengo wa kiyi API, monga momwe tawonetsera pamwambapa.

3. Ikani

Mochuluka kapena mochepa momveka bwino komanso mwatsatanetsatane za Yandex.Cloud ndi momwe angachiyike pamenepo Yandex ntchito zafotokozedwa m'nkhani yanga Alice ku Dziko la Bitrix - Ndimatumiza osadziwa kudziko lino, komanso kwa wina aliyense (ndi omwe adabwerera) - ndiye buku laling'ono lazithunzithunzi (ie mndandanda wa zithunzi ndi malemba).

Pangani zipi-archive (tiyeni titchule, mwachitsanzo, mailer.zip), momwe timaphatikiziramo chikwatu zigawo ndi mafayilo .env, index.js - Chilichonse kuchokera mgulu la polojekiti yathu:

Yandex ntchito kutumiza makalata

Timapanga ntchito ndi dzina ... molondola - wopanga, kumanzere navigation menyu ife kulowa Mkonzi, lembani magawo ofunikira, ndikusintha ku tabu Zip archive tsitsani zolemba zathu mailer.zip:

Yandex ntchito kutumiza makalata

Ndipo nayi njira yomwe yatchulidwa kale kuti mutsitse API kiyi molunjika apa, m'malo mopanga fayilo mu polojekitiyi .fm, ndipo musayike phukusi pansi. Koma tachita kale zonsezi, kotero ndikuwonetsa kuti ndingodziwa. Ndiko kuti, palibe chifukwa chobwereza!

Yandex ntchito kutumiza makalata

Tsopano mu ngodya chapamwamba kumanja dinani batani Pangani mtundu, ndipo dikirani masekondi angapo. Zonse zikakonzeka, tidzapita kugawoli mwachidule. Kumeneko tidzatsegula mwayi Ntchito zapagulukotero kuti mutha kulumikizana nazo kuchokera kudziko lakunja.

Yandex ntchito kutumiza makalata

Mukuwona ulalo wabuluu moyang'anizana ndi zolembedwazo Ulalo woyimba? Dinani izo. Zenera lopanda msakatuli lidzatsegulidwa... Koma dikirani - Ndalandira imelo:

Yandex ntchito kutumiza makalata

Tsopano mutha kubwerera ku console SendGrid, ndi kukanikiza batani Tsimikizani Kuphatikiza. Dongosolo lidzayang'ana chilichonse kudzera mumayendedwe ake, ndipo chifukwa chake liyenera kubweza chinsalu chonchi:

Yandex ntchito kutumiza makalata

Ndizo, anyamata (ndi atsikana, ndithudi) - chirichonse chiri chophweka kwambiri komanso chokongola! Padzakhala zolemba zambiri. Ngati wina ali ndi chidwi chowerenga zinazake ngati izi, lembetsani kuti musaphonye.

4. Zopereka

Yandex ntchito kutumiza makalata

Source: www.habr.com

Kuwonjezera ndemanga