Hoʻouna nā hana Yandex i ka leka uila

Hoʻouna nā hana Yandex i ka leka uila

I kēia lā e hana mākou i ka mea i kapa ʻia. Hana ʻo Yandex (inoa kūhelu ʻO Yandex Cloud Functions), i hui pū me ka lawelawe leka uila SendGrid e hoʻouna aku i "kopa" i nā mea hoʻohana moe maluhia (he ʻakaʻaka wale nō - ʻike wau ua kūʻē mākou āpau i ka spam).

He hoa paio au (akā, me ka ʻole o ka fanaticism) o nā kikowaena kuʻuna, a he kākoʻo o ka mea i kapa ʻia. kikoʻole (serverless) solutions, no ka mea, ʻaʻole au makemake (a ʻaʻole maopopo iaʻu pehea e) lawelawe ai i nā kikowaena, a ʻoi aku ka nui, e uku no ka manawa i hoʻouka ʻole ʻia. ʻO kekahi mea ʻē aʻe he hana. Hāʻawi kekahi iā lākou me ka ʻole oʻu, a ke uku wale nei au i nā kelepona. I ka hoʻomaka ʻana o ʻOkakopa 2019, hōʻike ʻo Yandex i kāna ʻO Yandex Cloud Functions - ʻo ia ka mea mua ma ka Russian Federation kikoʻole. A ʻo ka mea maikaʻi loa, ʻo ia no nā mākau o Alice he manuahi lākou, no laila aia lākou i loko o koʻu ʻike ākea mai ia manawa. Akā, e hoʻomaka kākou.

E noʻonoʻo kākou i kēia hiʻohiʻona. ʻO kāu noi (no ka laʻana, ke akamai o Alice E hoomanao a poina ka mea, ma ke ala, hana no hoi Nā hana Yandex) kono i ka mea hoʻohana e kūʻai i kahi huahana kikohoʻe, no ka laʻana, nā koho hou aʻe, a uku ka mea hoʻohana. ʻO kekahi ʻano ʻōnaehana uku (like me ka huikau Yandex.Money) ka hana i ka uku a hoʻouna aku i ka helu wahi āu e hāʻawi ai (a e loaʻa iā mākou kahi loulou e kelepona Nā hana Yandex) HTTP-ke noi i loaʻa nā kikoʻī uku, e like me ka nui, ka inoa piha, ka helu kelepona a me ka leka uila o ka mea uku. Makemake mākou e hoʻoponopono i kēia ʻikepili ma kekahi ʻano, no ka laʻana: nānā i ka nui, hana i nā hoʻokomo kūpono i ka waihona, hoʻouna i nā mea hoʻohana SMS и enamel me ka hōʻoiaʻiʻo o ka loaʻaʻana o ka uku a me nā kuhikuhi hou. No laila ʻoe iho microservice.

E pili ana pehea mai Nā hana Yandex e hookomo i loko o ka waihona Kapuaoa Firestore ua nānā mua mākou iā ia ma ke kumu aʻo Hoʻomanaʻo ʻo Alice i nā mea āpau (a i ka wā e hiki mai ana, manaʻo wau, e noʻonoʻo mākou i kahi laʻana no kahi waihona ʻē aʻe - ʻIkepili Yandex). E pili ana i ka hoʻouna ʻana i nā mea hoʻohana SMS a hoʻohui i kā mākou noi me Yandex.Money - E hoʻoponopono mākou i ka wā e hiki mai ana. I kēia manawa, e hana wale kākou i ka hoʻouna ʻana i nā leka.

1. E hana i moʻokāki ma SendGrid

i hoʻopukaʻO SendGrid wale nō kaʻu koho, aʻu i hana ai no nā kumu he nui, ʻo ka mea nui i loaʻa iā lākou kahi SDK mākaukau no Node.js. Hiki iā ʻoe ke koho i kekahi lawelawe leka uila ʻē aʻe.

E neʻe kāua i ka palapala kakau mooolelo a hoʻopiha i ka palapala hoʻopaʻa inoa ma laila. A laila hele mākou i Dashboard, ma ka papa hoʻokele koho API leka uila -> alakaʻi hoʻohui, a ma ka papa nui - Pūnaewele API a kaomi i ke pihi koho. Ua like nā mea a pau ma ke kiʻi:

Hoʻouna nā hana Yandex i ka leka uila

Ma ka ʻanuʻu aʻe mākou e koho ai Node.js:

Hoʻouna nā hana Yandex i ka leka uila

Ma hope aʻe e hele mai mākou no kā mākou API-key name (e hōʻike wale ʻia ma ka console ma ka papa inoa o nā kī, ʻaʻohe mea pili i kā mākou code e hiki mai ana; Ua hele mai au me kahi palaho kī demo-api) a kaomi i ke pihi Hana Ki:

Hoʻouna nā hana Yandex i ka leka uila

E hana ʻia ke kī, e kope mākou a mālama i ka hilinaʻi hohonu loa. A e loaʻa iā mākou kahi pale me kahi pihi E hōʻoia i ka hoʻohui, e like me ke kiʻi ma lalo nei, akā ʻaʻole mākou e kaomi iā ia, akā e neʻe kāua i ke kākau ʻana i ke code:

Hoʻouna nā hana Yandex i ka leka uila

2. Kākau helu

Akā ʻo ke code ponoʻī, e like me kāu e ʻike ai, he liʻiliʻi liʻiliʻi - 22 mau laina!

Hoʻouna nā hana Yandex i ka leka uila

I ka laina #8 Ua paʻakikī kaʻu leka uila (a no laila hūnā ʻia) - e ʻoluʻolu e hōʻike i kāu. Ma ke ola maoli, e loaʻa iā mākou nā ʻikepili āpau (me mail) mai ka mea hanana. Eia kekahi laʻana, ināʻo keʻano POST hoʻouna ʻia kahi mea i kā mākou hana mea hoʻohana me ke kahua (waiwai) mail, hiki ke loaa ka waiwai o keia kahua penei:

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

A inā hāʻawi ʻia ka leka uila i ka hana me ka hoʻohana ʻana i ke ʻano GETno ka laʻana: https://functions.yandexcloud.net/123abc?[email protected]
waiwai hoʻohālikelike mail hiki iā ʻoe ke loaʻa e like me kēia:

const email = event.queryStringParameters.email;

No ka nana pono i ka mea i loko o kekahi mea hanana, hiki iā ʻoe ke hana i ka mea maʻalahi Hana ʻo Yandex a wili me nā nīnau:

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

Kūkākūkā ʻia kēia me nā kikoʻī hou aku (akā ʻaʻole maopopo) ma ka palapala kūhelu maanei.

No laila, e hana i kahi papa kuhikuhi papahana (no ka laʻana, mea leka uila), e hele i laila, e hoʻomaka i ka papahana, e hoʻokomo i nā hilinaʻi:

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

Eia wale nō ka pūʻolo e koi ʻia @sendgrid/mail. Eke 'ūlina leka uila-validator e nānā i ka leka uila no ka pono (pehea wau i koho koke ʻole ai?), akā inā maopopo iā mākou (ua nānā ʻia ia no ka manawa lōʻihi me ka ʻole o mākou), ʻaʻole pono mākou e hoʻokomo iā ia (a, o ʻOiaʻiʻo, ʻaʻole pono mākou e nānā iā ia ma ke code). Eke 'ūlina dotenv i hoʻolālā ʻia e heluhelu i nā moʻolelo mai kahi faila .NS e like me nā loli manawa holo. Akā i loko Nā hana Yandex Hiki ke hoʻokomo pololei i kēia mau hoʻololi i loko o ke kaiapuni runtime. Pehea? - E hōʻike wau ma lalo. No laila ka pūʻolo dotenv ʻaʻole hiki iā ʻoe ke hoʻouka iā ia, a me ka faila .NS - mai hana, a ma ka manawa like ke code i loko o ka faila index.js mai hoololi. Eia naʻe ua hoʻokomo mākou i kēia pūʻolo, no laila hana mākou i nā faila index.js и .NS:

touch index.js
touch .env

Ma ka waihona index.js e kākau i nā laina 22 o ke code i hōʻike ʻia ma ke kiʻi ma luna (ma ka laina wale nō #8 hoʻololi i kāu leka uila), a ma ka faila .NS - (me ka ʻole o nā huaʻōlelo a i ʻole nā ​​kaha kikoʻī) e kuhikuhi i ka hui - inoa kī/waiwai APIi loaʻa iā mākou ma ka console SendGrid:
SENDGRID_API_KEY=kāu-nui-huna-hoʻouna-api-kī

A inā makemake ʻoe i ka liʻiliʻi o ka hana, clone i ka waihona a hoʻokomo i nā pūʻolo:

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

Ma ka waihona index.js, ma ka laina #8 hoʻololi i ka leka uila; hana i faila ma ka papa kuhikuhi kumu .NS, a i loko e hōʻike i ka inoa / waiwai o ke kī API, e like me ka mea i hoikeia maluna.

3. Hoʻolaha

ʻOi aku a liʻiliʻi aʻe a me nā kikoʻī e pili ana Yandex.Cloud a pehea e waiho ai i laila Nā hana Yandex i wehewehe ʻia ma kaʻu ʻatikala ʻO Alice i ka ʻāina o Bitrix - Hoʻouna wau i ka poʻe naʻaupō i kēia ʻāina, a no nā mea ʻē aʻe (a me ka poʻe i hoʻi mai) - a laila kahi puke comic liʻiliʻi (ʻo ia hoʻi ke ʻano o nā kiʻi a me nā kikokikona).

Hana mākou helu-archive (e kāhea kākou, no ka laʻana, mailer.zip), kahi mākou e hoʻokomo ai i ka papa kuhikuhi node_modules a me nā faila .env, index.js - nā mea a pau mai kā mākou papahana papahana:

Hoʻouna nā hana Yandex i ka leka uila

Hana mākou i kahi hana me ka inoa ... pololei - mea leka uila, ma ka papa kuhikuhi hema mākou e komo ai ʻO ka mea hoʻoponopono, hoʻopiha i nā kahua i makemake ʻia, a hoʻololi i ka pā ZIP waihona hoʻoiho i kā mākou waihona mailer.zip:

Hoʻouna nā hana Yandex i ka leka uila

A eia ke koho i ʻōlelo mua ʻia e hoʻoiho Kiʻi API pololei maanei, ma mua o ka hana ʻana i kahi faila i ka papahana .NS, a mai hoʻokomo i ka pūʻolo dotenv. Akā ua hana mākou i kēia mau mea a pau, no laila ke hōʻike nei wau no ka ʻike. ʻO ia hoʻi, ʻaʻohe pono e hoʻopālua!

Hoʻouna nā hana Yandex i ka leka uila

I kēia manawa ma ke kihi ʻākau i luna e kaomi i ke pihi Hana i ka mana, a kali i ʻelua kekona. Ke mākaukau nā mea a pau, e hele aunoa mākou i ka ʻāpana Hōʻuluʻulu manaʻo. Ma laila mākou e hiki ai ke koho Hana lehulehui hiki iā ʻoe ke launa pū me ia mai ka honua waho.

Hoʻouna nā hana Yandex i ka leka uila

ʻIke ʻoe i ka loulou polū e kū pono ana i ka palapala loulou kelepona? Kaomi ia. E wehe ʻia ana ka puka aniani ʻike ʻole... Akā e kali - ua loaʻa iaʻu kahi leka uila:

Hoʻouna nā hana Yandex i ka leka uila

I kēia manawa hiki iā ʻoe ke hoʻi i ka console SendGrid, a kaomi i ke pihi E hōʻoia i ka hoʻohui. E nānā ka ʻōnaehana i nā mea a pau ma o kāna mau kahawai, a ma muli o ka hopena e hoʻihoʻi i kahi pale e like me kēia:

Hoʻouna nā hana Yandex i ka leka uila

ʻO ia, e nā kāne (a me nā kaikamahine, ʻoiaʻiʻo) - maʻalahi loa nā mea āpau a nani! E nui aʻe nā ʻatikala. Inā makemake kekahi e heluhelu i kekahi mea e like me kēia, e kākau inoa i ʻole ʻoe e poina.

4. Hāʻawi

Hoʻouna nā hana Yandex i ka leka uila

Source: www.habr.com

Pākuʻi i ka manaʻo hoʻopuka