I kēia lā e hana mākou i ka mea i kapa ʻia. Hana ʻo Yandex (inoa kūhelu
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 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
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
Ma ka ʻanuʻu aʻe mākou e koho ai Node.js:
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:
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:
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!
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
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
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:
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:
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!
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.
ʻ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:
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:
ʻ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
Source: www.habr.com