Иандек функције шаљу пошту

Иандек функције шаљу пошту

Данас ћемо креирати тзв. Иандек функција (Службени назив Иандек Цлоуд функције), који је био у дослуху са поштанском услугом СендГрид ће послати „сапун“ корисницима који мирно спавају (шалим се – знам да смо сви против нежељене поште).

Такође сам противник (али без фанатизма) традиционалних сервера, и присталица тзв. без сервера (без серверских) решења, јер не волим (и не знам баш како) да администрирам сервере, а још више - да плаћам време када нису учитани. Друга ствар су функције. Неко их сервисира без мене, а ја плаћам само позиве. Почетком октобра 2019. Иандек је представио своју Иандек Цлоуд функције – изгледа први у Руској Федерацији без сервера. А оно што је посебно лепо је то што су Алисине вештине углавном бесплатне, тако да су од тада у мом периферном виду. Али хајде да почнемо већ.

Хајде да замислимо овај сценарио. Ваша апликација (на пример, Алисина вештина Запамти и заборави који, иначе, такође ради на Иандек функције) нуди кориснику да купи дигитални производ, на пример, додатне опције, а корисник врши плаћање. Нека врста платног система (збуњујуће сличан Иандек.Монеи) обрађује уплату и шаље је на адресу коју наведете (а ми ћемо имати везу за позив Иандек функције) ХТТП-захтев који садржи детаље плаћања, као што су износ, пуно име, број телефона и е-маил платиоца. Желимо да обрадимо ове податке на неки начин, на пример: проверимо износ, извршимо одговарајуће уносе у бази података, пошаљемо корисницима СМС- и Е-pošta уз потврду о пријему уплате и даља упутства. Дакле, себе микросервис.

О томе како од Иандек функције врши уносе у базу података Цлоуд Фиресторе већ смо то погледали у туторијалу Алиса се сећа свега (а у будућности, мислим, размотрићемо пример за другу базу података - Иандек Датабасе). О томе како послати корисницима СМС- и интегрисати нашу апликацију са Иандек.Монеи - решићемо то у блиској будућности. Хајде сада да се позабавимо слањем писама.

1. Креирајте налог у СендГрид-у

ПриметитиСендГрид је само мој избор, који сам направио из неколико разлога, а главни је тај што имају готов СДК за Ноде.јс. Можете одабрати било коју другу услугу слања поште.

Идемо даље на страницу за регистрацију налога и тамо попуните формулар за регистрацију. Онда идемо на Kontrolna tabla, у навигационој табли изаберите АПИ за е-пошту -> Водич за интеграцију, а на главном панелу - Веб АПИ и назимаем кнопку Изаберите. Све је као на слици:

Иандек функције шаљу пошту

У следећем кораку бирамо Ноде.јс:

Иандек функције шаљу пошту

Следеће ћемо смислити за наше АПИ за-име кључа (биће приказано само у конзоли на листи кључева и нема никакве везе са нашим будућим кодом; управо сам смислио непропадљив демо-апи-кључ) и притисните дугме Цреате Кеи:

Иандек функције шаљу пошту

Кључ ће бити генерисан, ми ћемо га копирати и чувати у најдубљем поверењу. И имаћемо екран са дугметом Верифи Интегратион, као на слици испод, али нећемо још кликнути, али пређимо на писање кода:

Иандек функције шаљу пошту

2. Писање кода

Али сам код, као што видите, је смешно мали - 22 реда!

Иандек функције шаљу пошту

У реду #8 Моја е-пошта је тврдо кодирана (и стога стидљиво скривена) - молимо наведите своју. У стварном животу, примићемо све податке (укључујући емајл) од објекта догађај. На пример, ако метод ПОСТ објекат се шаље нашој функцији корисник са пољем (имовином) емајл, вредност овог поља се може добити на следећи начин:

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

А ако се адреса е-поште проследи функцији помоћу методе ГЕТ, на пример: https://functions.yandexcloud.net/123abc?[email protected]
вредност параметра емајл можете добити овако:

const email = event.queryStringParameters.email;

Да погледамо шта се тачно налази у објекту догађај, можете креирати најједноставнији Иандек функција и изврни га упитима:

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

Овде је потребан само пакет @сендгрид/маил. Пластична кеса емаил-валидатор проверава валидност адресе е-поште (како нисам одмах погодио?), али ако смо сигурни у њу (већ је проверавана већ дуже време без нас), не морамо да је инсталирамо (и, од наравно, не морамо то да проверавамо у коду). Пластична кеса дотенв дизајниран за читање записа из датотеке .енв као рунтиме променљиве. Али у Иандек функције Могуће је поставити ове варијабле директно у окружење за извршавање. Како? - Показаћу то испод. Стога пакет дотенв такође не можете да га инсталирате, а фајл .енв - не креирајте, а истовремено је код у датотеци индек.јс немој да се мењаш. Али овде смо инсталирали овај пакет, па креирамо датотеке индек.јс и .енв:

touch index.js
touch .env

У фајлу индек.јс напишите 22 реда кода приказаног на слици изнад (само у линији #8 промените своју е-пошту) и у датотеци .енв - (без наводника или интерпункције) наведите пар - име кључа/вредност АПИ закоји смо недавно добили у конзоли СендГрид:
СЕНДГРИД_АПИ_КЕИ=ваш-веома-тајни-сендгрид-апи-кључ

А ако желите мање посла, клонирајте спремиште и инсталирајте пакете:

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

У фајлу индек.јс, у реду #8 Промена Е-маил; креирајте датотеку у основном директоријуму .енв, а у њему назначите име/вредност кључа АПИ за, као што је приказано мало изнад.

3. Деплои

Мање-више јасно и детаљно о Иандек.Цлоуд и како га тамо поставити Иандек функције описано у мом чланку Алиса у земљи Битрикса - Шаљем незналице у ову земљу, а за све остале (и оне који су се вратили) - онда мали стрип (тј. низ слика и текста).

Креирај рар-архива (назовимо је нпр. маилер.зип), у који укључујемо именик ноде_модулес и датотеке .енв, индек.јс - све из нашег каталога пројеката:

Иандек функције шаљу пошту

Креирамо функцију са именом... исправно - поштар, у левом навигационом менију улазимо Уредник, попуните обавезна поља и пређите на картицу ЗИП архива преузмите нашу архиву маилер.зип:

Иандек функције шаљу пошту

А ево и претходно поменуте опције за преузимање АПИ кључ директно овде, уместо да креирате датотеку у пројекту .енв, и немојте инсталирати пакет дотенв. Али све смо то већ урадили, па вам показујем само за информацију. То јест, нема потребе за дуплирањем!

Иандек функције шаљу пошту

Сада у горњем десном углу кликните на дугме Креирајте верзију, и сачекајте неколико секунди. Када је све спремно, аутоматски ћемо прећи на одељак Преглед. Тамо ћемо омогућити опцију Јавна функцијатако да можете да комуницирате са њим из спољашњег света.

Иандек функције шаљу пошту

Насупрот натписа видите плаву везу Веза за позив? Кликни. Отвориће се празан прозор претраживача... Али сачекајте - добио сам е-пошту:

Иандек функције шаљу пошту

Сада се можете вратити на конзолу СендГрид, и притисните дугме Верифи Интегратион. Систем ће све проверити преко својих канала и као резултат би требало да врати екран овако:

Иандек функције шаљу пошту

То је то, момци (и девојке, наравно) - све је заиста врло једноставно и елегантно! Биће још чланака. Ако је неко заинтересован да прочита нешто овако, претплатите се да не бисте пропустили.

4. Донације

Иандек функције шаљу пошту

Извор: ввв.хабр.цом

Додај коментар