Өнөөдөр бид гэж нэрлэгддэг зүйлийг бий болгоно. Yandex функц (официальное название
Би бас уламжлалт серверүүдийн өрсөлдөгч (гэхдээ фанатизмгүй) бөгөөд гэгдэхийг дэмжигч юм. serverless (сервергүй) шийдлүүд, учир нь би серверүүдийг удирдах дургүй (мөн яаж хийхээ мэдэхгүй байна), тэр ч байтугай ачааллаагүй хугацааны төлбөрийг төлдөг. Өөр нэг зүйл бол функцууд юм. Хэн нэгэн надгүйгээр тэдэнд үйлчилдэг, би зөвхөн дуудлагын төлбөрийг төлдөг. 2019 оны XNUMX-р сарын эхээр Yandex танилцууллаа Yandex Cloud функцууд - ОХУ-д анхдагч юм шиг байна serverless. Хамгийн сайхан нь Алисын ур чадварын хувьд тэд ерөнхийдөө үнэ төлбөргүй байдаг тул тэр цагаас хойш миний захын хараанд байсаар ирсэн. Гэхдээ аль хэдийн эхэлцгээе.
Энэ хувилбарыг төсөөлөөд үз дээ. Таны өргөдөл (жишээлбэл, Алисын ур чадвар
Хэрхэн ирсэн тухай Яндекс-функций мэдээллийн санд бичилт хийх Cloud Firestore Бид үүнийг зааварт аль хэдийн үзсэн
1. SendGrid дээр бүртгэл үүсгэнэ
тайлбарSendGrid бол зүгээр л миний сонголт бөгөөд үүнийг би хэд хэдэн шалтгааны улмаас хийсэн бөгөөд гол нь тэд Node.js-д зориулсан бэлэн SDK-тэй болсон явдал юм. Та өөр ямар ч шуудангийн үйлчилгээг сонгож болно.
Миний переходим
Дараагийн алхамд бид сонгоно Node.js:
Дараа нь бид өөрсдийнхөө талаар бодож байна API-түлхүүрийн нэр (түлхүүрүүдийн жагсаалтад зөвхөн консол дээр харагдах бөгөөд бидний ирээдүйн кодтой ямар ч холбоогүй болно; би зүгээр л үл муудах зүйлийг олж мэдэв. demo-api-түлхүүр) товчийг дарна уу Түлхүүр үүсгэх:
Түлхүүр нь үүсгэгдэх болно, бид үүнийг хуулж, гүн гүнзгий нууцлалд хадгална. Мөн бид товчлуур бүхий дэлгэцтэй болно Интеграцийг баталгаажуулах, доорх зурган дээрх шиг, гэхдээ бид үүнийг хараахан товшихгүй, харин код бичих рүү шилжье:
2. Код бичих
Гэхдээ код нь өөрөө, таны харж байгаагаар инээдтэй жижиг юм - 22 мөр!
Шугаманд #8 Миний имэйл хатуу кодлогдсон (тиймээс ичимхий нуугдсан) - өөрийнхөө имэйлийг зааж өгнө үү. Бодит амьдрал дээр бид бүх өгөгдлийг хүлээн авах болно (үүнд И-мэйл) объектоос үйл явдал. Жишээлбэл, хэрэв арга Шуудан объектыг манай функц руу илгээсэн хэрэглэгчийн талбайтай (өмч) И-мэйл, энэ талбарын утгыг дараах байдлаар авч болно.
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 - үүсгэж болохгүй, тэр үед код нь файлд байна index.js не менять. Но здесь мы этот пакет установили, поэтому создаём файлы index.js и .env:
touch index.js
touch .env
Файлд index.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
Файлд index.js, шугаманд #8 имэйлийг өөрчлөх; үндсэн директорт файл үүсгэх .env, мөн үүн дотор түлхүүрийн нэр/утгыг зааж өгнө API, дээр үзүүлсэн шиг.
3. Байршуулах
талаар их бага тодорхой, дэлгэрэнгүй Yandex.Cloud и о том, как там размещать Yandex функцууд миний нийтлэлд тайлбарласан
Би тохируулж байна зип-архив (үүнийг жишээ нь гэж нэрлэе. mailler.zip), бид лавлахыг багтаасан болно зангилаа_ модуль болон файлууд .env, index.js — все из каталога нашего проекта:
Бид зөв нэртэй функцийг бүтээдэг... шуудан илгээгч, зүүн навигацийн цэсэнд бид ордог Редактор, шаардлагатай талбаруудыг бөглөж, таб руу шилжинэ үү ZIP архив загружаем наш архив mailler.zip:
А вот и упомянутая ранее возможность загрузить API түлхүүр төсөлд файл үүсгэхийн оронд шууд энд .env, мөн багцыг бүү суулгаарай дотенв. Но мы всё это уже сделали, поэтому показываю просто для информации. То есть — дублировать не надо!
Одоо баруун дээд буланд байгаа товчлуур дээр дарна уу Хувилбар үүсгэх, хэдэн секунд хүлээнэ үү. Бүх зүйл бэлэн болмогц бид автоматаар хэсэг рүү шилжих болно тойм. Там включим опцию Нийтийн чиг үүрэгИнгэснээр та гадаад ертөнцөөс түүнтэй харьцах боломжтой.
Бичээсийн эсрэг талд байгаа цэнхэр холбоосыг харна уу Дуудлагын холбоос? Үүнийг товшино уу. Хөтчийн хоосон цонх нээгдэнэ... Гэхдээ түр хүлээнэ үү - Би имэйл хүлээн авлаа:
Одоо та консол руу буцаж болно SendGrid, товчийг дарна уу Интеграцийг баталгаажуулах. Систем нь бүх зүйлийг өөрийн сувгаар шалгах бөгөөд үр дүнд нь дараах дэлгэцийг буцаана.
Ингээд л залуусаа (мэдээж охид) - бүх зүйл үнэхээр энгийн бөгөөд дэгжин юм! Илүү олон нийтлэл байх болно. Хэрэв хэн нэгэн үүнтэй төстэй зүйлийг унших сонирхолтой байвал үүнийг алдахгүйн тулд бүртгүүлээрэй.
4. Хандив
Эх сурвалж: www.habr.com