Данас ћемо креирати тзв. Иандек функција (Службени назив
Такође сам противник (али без фанатизма) традиционалних сервера, и присталица тзв. без сервера (без серверских) решења, јер не волим (и не знам баш како) да администрирам сервере, а још више - да плаћам време када нису учитани. Друга ствар су функције. Неко их сервисира без мене, а ја плаћам само позиве. Почетком октобра 2019. Иандек је представио своју Иандек Цлоуд функције – изгледа први у Руској Федерацији без сервера. А оно што је посебно лепо је то што су Алисине вештине углавном бесплатне, тако да су од тада у мом периферном виду. Али хајде да почнемо већ.
Хајде да замислимо овај сценарио. Ваша апликација (на пример, Алисина вештина
О томе како од Иандек функције врши уносе у базу података Цлоуд Фиресторе већ смо то погледали у туторијалу
1. Креирајте налог у СендГрид-у
ПриметитиСендГрид је само мој избор, који сам направио из неколико разлога, а главни је тај што имају готов СДК за Ноде.јс. Можете одабрати било коју другу услугу слања поште.
Идемо даље
У следећем кораку бирамо Ноде.јс:
Следеће ћемо смислити за наше АПИ за-име кључа (биће приказано само у конзоли на листи кључева и нема никакве везе са нашим будућим кодом; управо сам смислио непропадљив демо-апи-кључ) и притисните дугме Цреате Кеи:
Кључ ће бити генерисан, ми ћемо га копирати и чувати у најдубљем поверењу. И имаћемо екран са дугметом Верифи Интегратион, као на слици испод, али нећемо још кликнути, али пређимо на писање кода:
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. Донације
Извор: ввв.хабр.цом