Имрӯз мо ба ном эҷод мекунем. Функсияи Yandex (номи расмӣ
Ман инчунин як мухолифи серверҳои анъанавӣ (вале бе фанатизм) ва тарафдори ба истилоҳ ҳастам. сервер нест ҳалли (бе сервер), зеро ба ман маъмурияти серверҳоро дӯст намедорам (ва ман аслан намедонам) ва ҳатто бештар аз он, барои вақти бор накардани онҳо пардохт кунед. Чизи дигар функсияҳост. Касе ба онҳо бе ман хидмат мерасонад ва ман танҳо барои зангҳо пул месупорам. Дар оғози моҳи октябри соли 2019 Яндекс пешниҳод кард Функсияҳои абрии Yandex — гуё дар Федерациям Россия аввалин шуда сервер нест. Ва он чизе, ки махсусан хуб аст, он аст, ки барои малакаҳои Алис онҳо умуман озоданд, аз ин рӯ онҳо аз он вақт инҷониб дар назари периферии ман қарор доранд. Аммо биёед аллакай оғоз кунем.
Биёед ин сенарияро тасаввур кунем. Аризаи шумо (масалан, маҳорати Алиса
Дар бораи чӣ гуна аз Функсияҳои Yandex ба базаи маълумот дохил кунед Cloud Firestore мо онро аллакай дар дастур дида будем
1. Дар SendGrid ҳисоб эҷод кунед
эрод гирифтанSendGrid ин танҳо интихоби ман аст, ки ман онро бо якчанд сабабҳо кардам, яке аз муҳимтарин он аст, ки онҳо барои Node.js SDK-и омода доранд. Шумо метавонед ягон хидмати дигари почтаро интихоб кунед.
Биёед пеш равем
Дар қадами оянда мо интихоб мекунем Node.js:
Минбаъд мо барои худ мебароем API-номи калид (танҳо дар консол дар рӯйхати калидҳо нишон дода мешавад ва ба рамзи ояндаи мо ҳеҷ иртиботе надорад; ман танҳо як чизи вайроннашаванда пайдо кардам demo-api-калиди) ва тугмаро пахш кунед Эҷоди Калид:
Калид тавлид мешавад, мо онро нусхабардорӣ мекунем ва онро дар эътимоди амиқ нигоҳ медорем. Ва мо як экран бо тугма хоҳад дошт Интегратсияро тасдиқ кунед, тавре ки дар расми зер оварда шудааст, аммо мо ҳоло онро пахш намекунем, аммо биёед ба навиштани код гузарем:
2. Рамзи навиштан
Аммо худи код, чунон ки шумо мебинед, хандаовар хурд аст - 22 сатр!
Дар мувофиқат #8 Почтаи электронии ман сахт рамзгузорӣ шудааст (ва аз ин рӯ шармгинона пинҳон аст) - лутфан почтаи электронии худро нишон диҳед. Дар ҳаёти воқеӣ мо ҳама маълумотро мегирем (аз ҷумла почтаи электронӣ) аз объект ҳодиса. Масалан, агар усули POST объект ба вазифаи мо фиристода мешавад истифода бо майдон (амвол) почтаи электронӣ, арзиши ин майдонро метавон чунин ба даст овард:
const { user } = event;
const email = user.email;
Ва агар суроғаи почтаи электронӣ ба функсия бо истифода аз усул интиқол дода шавад GET, масалан: https://functions.yandexcloud.net/123abc?[email protected]
арзиши параметр почтаи электронӣ шумо метавонед онро чунин ба даст оред:
const email = event.queryStringParameters.email;
Барои дидани он, ки дар объект чӣ мавҷуд аст ҳодиса, шумо метавонед соддатаринро эҷод кунед Функсияи Yandex ва онро бо дархостҳо печонед:
module.exports.handler = async function (event) {
return {
'statusCode': 200,
'body': JSON.stringify(event)
};
};
Ин дар ҳуҷҷатҳои расмӣ муфассалтар (вале камтар равшан) баррасӣ карда мешавад
Пас, феҳристи лоиҳа эҷод кунед (масалан, хаткашон), ба он равед, лоиҳаро оғоз кунед, вобастагӣ насб кунед:
mkdir mailer
cd mailer
npm init -y
npm i @sendgrid/mail email-validator dotenv
Дар ин ҷо танҳо баста лозим аст @sendgrid/mail. Халтаи пластикӣ тасдиқкунандаи почтаи электронӣ дурустии суроғаи почтаи электрониро тафтиш мекунад (чӣ гуна ман дарҳол тахмин накардаам?), аммо агар мо ба он боварӣ дошта бошем (он аллакай бидуни мо муддати тӯлонӣ тафтиш карда шудааст), мо набояд онро насб кунем (ва аз Албатта, мо набояд онро дар код тафтиш кунем). Халтаи пластикӣ дотенв барои хондани сабтҳо аз файл пешбинӣ шудааст .env ҳамчун тағирёбандаҳои вақти корӣ. Аммо дар Функсияҳои Yandex Ин тағирёбандаҳоро мустақиман дар муҳити корӣ ҷойгир кардан мумкин аст. Чӣ хел? -Дар поён нишон медиҳам. Бинобар ин, баста дотенв шумо низ метавонед онро насб накунед, ва файл .env - эҷод накунед ва дар айни замон код дар файл аст индекс.js тағир надиҳед. Аммо дар ин ҷо мо ин бастаро насб кардем, бинобар ин мо файлҳоро эҷод мекунем индекс.js и .env:
touch index.js
touch .env
Дар файл индекс.js 22 сатри рамзи дар тасвири боло нишондодашударо нависед (танҳо дар сатр #8 почтаи электронии худро тағир диҳед) ва дар файл .env - (бе ягон нохунак ё аломати пунктуатсия) ҷуфти - номи калид/арзишро муайян кунед APIки мо ба карибй дар консол кабул кардем SendGrid:
SENDGRID_API_KEY=калиди хеле махфии шумо-sendgrid-api
Ва агар шумо хоҳед, ки кори камтар дошта бошед, анборро клон кунед ва бастаҳоро насб кунед:
git clone https://github.com/stmike/ycf-sendgrid-mailer-tutorial.git
cd ycf-sendgrid-mailer-tutorial
npm i
Дар файл индекс.js, дар мувофиқат #8 иваз кардани почтаи электронӣ; файлро дар директорияи решавӣ эҷод кунед .env, ва дар он ном/қимати калидро нишон диҳед API, тавре ки дар боло нишон дода шудааст.
3. Ҷойгир кардан
Бештар ё камтар равшан ва муфассал дар бораи Yandex.Cloud ва чӣ гуна онро дар он ҷо ҷойгир кардан мумкин аст Функсияҳои Yandex дар мақолаи ман тасвир шудааст
Эҷод кунед Индекс-архив (биёед онро номбар кунем, масалан, mailler.zip), ки мо директорияро дарбар мегирем гиреҳ_модулҳо ва файлҳо .env, index.js - ҳама чиз аз каталоги лоиҳаҳои мо:
Мо функсияро бо ном... дуруст эҷод мекунем - хаткашон, дар менюи новбари чап мо ворид мешавем Таҳрири, майдонҳои лозимиро пур кунед ва ба ҷадвал гузаред бойгонии ZIP архиви моро зеркашӣ кунед mailler.zip:
Ва дар ин ҷо варианти қаблан зикршуда барои зеркашӣ аст калиди API бевосита дар ин ҷо, ба ҷои сохтани файл дар лоиҳа .env, ва бастаро насб накунед дотенв. Аммо мо ҳама инро аллакай анҷом додаем, бинобар ин ман онро танҳо барои маълумот нишон медиҳам. Яъне дубликат кардан лозим нест!
Акнун дар кунҷи рости боло тугмаро пахш кунед Эҷоди версия, ва якчанд сония интизор шавед. Вақте ки ҳама чиз омода аст, мо ба таври худкор ба қисмат меравем шарҳ. Дар он ҷо мо вариантро фаъол хоҳем кард Функсияи ҷамъиятӣто ки шумо метавонед бо он аз ҷаҳони беруна муошират кунед.
Шумо пайванди кабудро дар муқобили навиштаҷот мебинед Истиноди занг? Онро клик кунед. Равзанаи холии браузер кушода мешавад... Аммо интизор шавед - ман паёми электронӣ гирифтам:
Акнун шумо метавонед ба консол баргардед SendGrid, ва тугмаро пахш кунед Интегратсияро тасдиқ кунед. Система ҳама чизро тавассути каналҳои худ тафтиш мекунад ва дар натиҷа он бояд чунин экранро баргардонад:
Ин аст, бачаҳо (ва духтарон, албатта) - ҳама чиз воқеан хеле содда ва шево аст! Мақолаҳои бештар хоҳанд буд. Агар касе ба хондани чунин чизе таваҷҷӯҳ дошта бошад, обуна шавед, то аз даст надиҳед.
4. Хайрияҳо
Манбаъ: will.com