Функсияҳои Yandex почта мефиристанд

Функсияҳои Yandex почта мефиристанд

Имрӯз мо ба ном эҷод мекунем. Функсияи Yandex (номи расмӣ Функсияҳои абрии Yandex), ки бо хадамоти почта созиш кардааст SendGrid ба корбарони ором хобида "собун" мефиристад (шӯхӣ - ман медонам, ки мо ҳама зидди спам ҳастем).

Ман инчунин як мухолифи серверҳои анъанавӣ (вале бе фанатизм) ва тарафдори ба истилоҳ ҳастам. сервер нест ҳалли (бе сервер), зеро ба ман маъмурияти серверҳоро дӯст намедорам (ва ман аслан намедонам) ва ҳатто бештар аз он, барои вақти бор накардани онҳо пардохт кунед. Чизи дигар функсияҳост. Касе ба онҳо бе ман хидмат мерасонад ва ман танҳо барои зангҳо пул месупорам. Дар оғози моҳи октябри соли 2019 Яндекс пешниҳод кард Функсияҳои абрии Yandex — гуё дар Федерациям Россия аввалин шуда сервер нест. Ва он чизе, ки махсусан хуб аст, он аст, ки барои малакаҳои Алис онҳо умуман озоданд, аз ин рӯ онҳо аз он вақт инҷониб дар назари периферии ман қарор доранд. Аммо биёед аллакай оғоз кунем.

Биёед ин сенарияро тасаввур кунем. Аризаи шумо (масалан, маҳорати Алиса Дар хотир доред ва фаромӯш кунед ки дар омади гап хам кор мекунад Функсияҳои Yandex) корбарро барои харидани маҳсулоти рақамӣ, масалан, имконоти иловагӣ даъват мекунад ва корбар пардохт мекунад. Як намуди системаи пардохт (ба таври печида монанд ба Садо Ояндасоз) пардохтро коркард мекунад ва онро ба суроғаи пешниҳодкардаи шумо мефиристад (ва мо барои занг задан пайванде хоҳем дошт Функсияҳои Yandex) HTTP-дархост, ки тафсилоти пардохтро дар бар мегирад, ба монанди маблағ, номи пурра, рақами телефон ва почтаи электронии пардохткунанда. Мо мехоҳем ин маълумотро бо ягон роҳ коркард кунем, масалан: маблағро санҷед, дар базаи маълумот сабтҳои мувофиқ ворид кунед, ба корбарон ирсол кунед СМС и Имейл бо тасдики гирифтани пардохт ва дастурхои минбаъда. Пас худи microservice.

Дар бораи чӣ гуна аз Функсияҳои Yandex ба базаи маълумот дохил кунед Cloud Firestore мо онро аллакай дар дастур дида будем Алиса ҳама чизро дар хотир дорад (ва дар оянда, ман фикр мекунам, мо намунаи дигар базаи маълумотро баррасӣ хоҳем кард - Пойгоҳи додаҳои Yandex). Дар бораи чӣ гуна фиристодан ба корбарон СМС ва замимаи моро бо Yandex.Money — дар ояндаи наздик онро хал мекунем. Акнун биёед танхо бо фиристодани мактубхо машгул шавем.

1. Дар SendGrid ҳисоб эҷод кунед

эрод гирифтанSendGrid ин танҳо интихоби ман аст, ки ман онро бо якчанд сабабҳо кардам, яке аз муҳимтарин он аст, ки онҳо барои Node.js SDK-и омода доранд. Шумо метавонед ягон хидмати дигари почтаро интихоб кунед.

Биёед пеш равем ба саҳифаи бақайдгирии ҳисоб ва дар он ҷо варақаи бақайдгирӣ пур кунед. Баъд мо ба панели, дар панели паймоиш -ро интихоб кунед Email API -> Дастури ҳамгироӣ, ва дар панели асосӣ - WebAPI ва нажимаем кнопку интихоб кардан. Ҳама чиз тавре ки дар расм аст:

Функсияҳои Yandex почта мефиристанд

Дар қадами оянда мо интихоб мекунем Node.js:

Функсияҳои Yandex почта мефиристанд

Минбаъд мо барои худ мебароем API-номи калид (танҳо дар консол дар рӯйхати калидҳо нишон дода мешавад ва ба рамзи ояндаи мо ҳеҷ иртиботе надорад; ман танҳо як чизи вайроннашаванда пайдо кардам demo-api-калиди) ва тугмаро пахш кунед Эҷоди Калид:

Функсияҳои Yandex почта мефиристанд

Калид тавлид мешавад, мо онро нусхабардорӣ мекунем ва онро дар эътимоди амиқ нигоҳ медорем. Ва мо як экран бо тугма хоҳад дошт Интегратсияро тасдиқ кунед, тавре ки дар расми зер оварда шудааст, аммо мо ҳоло онро пахш намекунем, аммо биёед ба навиштани код гузарем:

Функсияҳои Yandex почта мефиристанд

2. Рамзи навиштан

Аммо худи код, чунон ки шумо мебинед, хандаовар хурд аст - 22 сатр!

Функсияҳои Yandex почта мефиристанд

Дар мувофиқат #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 дар мақолаи ман тасвир шудааст Алиса дар сарзамини Bitrix - Ман ҷоҳилонро ба ин кишвар мефиристам ва барои ҳама (ва онҳое, ки баргаштанд) - пас як китоби хурди комикс (яъне силсилаи тасвирҳо ва матн).

Эҷод кунед Индекс-архив (биёед онро номбар кунем, масалан, mailler.zip), ки мо директорияро дарбар мегирем гиреҳ_модулҳо ва файлҳо .env, index.js - ҳама чиз аз каталоги лоиҳаҳои мо:

Функсияҳои Yandex почта мефиристанд

Мо функсияро бо ном... дуруст эҷод мекунем - хаткашон, дар менюи новбари чап мо ворид мешавем Таҳрири, майдонҳои лозимиро пур кунед ва ба ҷадвал гузаред бойгонии ZIP архиви моро зеркашӣ кунед mailler.zip:

Функсияҳои Yandex почта мефиристанд

Ва дар ин ҷо варианти қаблан зикршуда барои зеркашӣ аст калиди API бевосита дар ин ҷо, ба ҷои сохтани файл дар лоиҳа .env, ва бастаро насб накунед дотенв. Аммо мо ҳама инро аллакай анҷом додаем, бинобар ин ман онро танҳо барои маълумот нишон медиҳам. Яъне дубликат кардан лозим нест!

Функсияҳои Yandex почта мефиристанд

Акнун дар кунҷи рости боло тугмаро пахш кунед Эҷоди версия, ва якчанд сония интизор шавед. Вақте ки ҳама чиз омода аст, мо ба таври худкор ба қисмат меравем шарҳ. Дар он ҷо мо вариантро фаъол хоҳем кард Функсияи ҷамъиятӣто ки шумо метавонед бо он аз ҷаҳони беруна муошират кунед.

Функсияҳои Yandex почта мефиристанд

Шумо пайванди кабудро дар муқобили навиштаҷот мебинед Истиноди занг? Онро клик кунед. Равзанаи холии браузер кушода мешавад... Аммо интизор шавед - ман паёми электронӣ гирифтам:

Функсияҳои Yandex почта мефиристанд

Акнун шумо метавонед ба консол баргардед SendGrid, ва тугмаро пахш кунед Интегратсияро тасдиқ кунед. Система ҳама чизро тавассути каналҳои худ тафтиш мекунад ва дар натиҷа он бояд чунин экранро баргардонад:

Функсияҳои Yandex почта мефиристанд

Ин аст, бачаҳо (ва духтарон, албатта) - ҳама чиз воқеан хеле содда ва шево аст! Мақолаҳои бештар хоҳанд буд. Агар касе ба хондани чунин чизе таваҷҷӯҳ дошта бошад, обуна шавед, то аз даст надиҳед.

4. Хайрияҳо

Функсияҳои Yandex почта мефиристанд

Манбаъ: will.com

Илова Эзоҳ