تقوم وظائف Yandex بإرسال البريد

تقوم وظائف Yandex بإرسال البريد

اليوم سوف نقوم بإنشاء ما يسمى دالة Yandex (الاسم الرسمي وظائف سحابة Yandex)، والتي تواطأت مع خدمة البريد SendGrid سيتم إرسال "الصابون" إلى المستخدمين النائمين بسلام (مزحة فقط - أعلم أننا جميعًا ضد البريد العشوائي).

أنا أيضًا معارض (ولكن بدون تعصب) للخوادم التقليدية، ومؤيد لما يسمى serverless الحلول (بدون خادم)، لأنني لا أحب (ولا أعرف حقًا كيفية) إدارة الخوادم، والأكثر من ذلك، أنني أدفع مقابل الوقت الذي لا يتم تحميلها فيه. ومسألة أخرى هي الوظائف. أحدهم يخدمهم بدوني، وأنا أدفع ثمن المكالمات فقط. في أوائل أكتوبر 2019، قدمت ياندكس وظائف سحابة Yandex - أعتقد أنها الأولى في روسيا serverless. وما هو لطيف بشكل خاص هو أن مهارات أليس مجانية تمامًا، لذا فقد كانت في مجال رؤيتي المحيطي منذ ذلك الحين. ولكن دعونا نبدأ بالفعل.

دعونا نتخيل هذا السيناريو. تطبيقك (على سبيل المثال، مهارة أليس) تذكر وانسى والتي، بالمناسبة، تعمل أيضًا على وظائف ياندكس) يقدم للمستخدم شراء منتج رقمي، مثل خيارات إضافية، ويقوم المستخدم بالدفع. بعض أنظمة الدفع (مشابهة بشكل مربك لـ ياندكس) معالجة الدفع وإرساله إلى العنوان الذي قدمته (وسيكون هذا بالنسبة لنا رابطًا للاتصال وظائف ياندكس) HTTP- طلب يحتوي على تفاصيل الدفع مثل المبلغ والاسم الكامل ورقم الهاتف والبريد الإلكتروني للدافع. نريد معالجة هذه البيانات بطريقة ما، على سبيل المثال: التحقق من المبلغ، وإجراء الإدخالات المناسبة في قاعدة البيانات، وإرسالها إلى المستخدمين SMS и البريد الإلكتروني مع تأكيد استلام الدفع والتعليمات الإضافية. عادي خدمة مصغرة.

حول كيف من وظائف ياندكس إجراء إدخالات في قاعدة البيانات سحابة Firestore لقد نظرنا إلى ذلك بالفعل في البرنامج التعليمي تتذكر أليس كل شيء (وفي وقت لاحق، أعتقد أننا سوف ننظر في مثال لقاعدة بيانات أخرى - قاعدة بيانات ياندكس). حول كيفية الإرسال للمستخدمين SMS ودمج تطبيقنا مع ياندكس موني - سوف نفهم ذلك في المستقبل القريب. الآن سوف نركز فقط على إرسال الرسائل.

1. قم بإنشاء حساب في SendGrid

لاحظSendGrid هو خياري الوحيد، والذي قمت به لعدة أسباب، والسبب الرئيسي هو أن لديهم مجموعة أدوات تطوير برمجيات جاهزة لـ Node.js. يمكنك اختيار أي خدمة بريدية أخرى.

هيا لنذهب إلى صفحة تسجيل الحساب وملء نموذج التسجيل هناك. ثم ننتقل إلى لوحة التحكمفي لوحة التنقل نختار واجهة برمجة تطبيقات البريد الإلكتروني -> دليل التكامل، وعلى اللوحة الرئيسية - واجهة برمجة تطبيقات الويب واضغط على الزر اختار. كل شيء كما في الصورة:

تقوم وظائف Yandex بإرسال البريد

في الخطوة التالية نختار Node.js :

تقوم وظائف Yandex بإرسال البريد

بعد ذلك نأتي بشيء خاص بنا API-key name (سيتم عرضه فقط في وحدة التحكم في قائمة المفاتيح، وليس له علاقة بكودنا المستقبلي؛ لقد توصلت إلى اسم غير قابل للتلف مفتاح واجهة برمجة التطبيقات التجريبية) واضغط على الزر إنشاء مفتاح:

تقوم وظائف Yandex بإرسال البريد

سيتم إنشاء المفتاح، وسنقوم بنسخه والاحتفاظ به بسرية تامة. وسوف يكون لدينا شاشة مع زر التحقق من التكامل، كما في الصورة أدناه، ولكننا لن نضغط عليه بعد، بل سننتقل إلى كتابة الكود:

تقوم وظائف Yandex بإرسال البريد

2. كتابة الكود

والرمز نفسه، كما يمكنك أن ترى، صغير بشكل مثير للسخرية - 22 سطرًا!

تقوم وظائف Yandex بإرسال البريد

في النسق #8 بريدي الإلكتروني مشفر (ولذلك فهو مغطى بشكل مخجل) - قم بتحديد بريدك الإلكتروني. في الحياة الواقعية، سوف نتلقى جميع البيانات (بما في ذلك البريد الإلكتروني) من الكائن حدث. على سبيل المثال، إذا كانت الطريقة سأعين يتم إرسال كائن إلى وظيفتنا المستخدم مع الحقل (الخاصية) البريد الإلكتروني، يمكن الحصول على قيمة هذا الحقل على النحو التالي:

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

وإذا تم تمرير عنوان البريد الإلكتروني إلى الوظيفة بواسطة الطريقة للحصول علىعلى سبيل المثال: https://functions.yandexcloud.net/123abc?email=user@example.com
قيمة المعلمة البريد الإلكتروني يمكنك الحصول عليه مثل هذا:

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 كمتغيرات وقت التشغيل. ولكن في وظائف ياندكس ومن الممكن وضع هذه المتغيرات مباشرة في بيئة التنفيذ. كيف؟ - سأعرضه أدناه. لذلك الحزمة دوتنف لا يمكنك أيضًا تعيينه، والملف .env - لا تنشئ، وفي نفس الوقت يكون الكود موجودًا في الملف index.js لا تتغير. ولكن هنا قمنا بتثبيت هذه الحزمة، لذلك نقوم بإنشاء الملفات index.js и .env:

touch index.js
touch .env

في ملف index.js نكتب 22 سطرًا من التعليمات البرمجية الموضحة في لقطة الشاشة أعلاه (في السطر فقط) #8 (تغيير بريدك الإلكتروني)، وفي الملف .env — (بدون أي علامات اقتباس أو علامات ترقيم) حدد زوج اسم المفتاح/القيمة API، والتي تلقيناها مؤخرًا في وحدة التحكم SendGrid:
SENDGRID_API_KEY=مفتاح 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. النشر

بشكل أوضح أو أقل تفصيلاً حول ياندكس كلاود وكيفية وضعه هناك وظائف ياندكس كما قيل في مقالتي أليس في أرض بيتريكس — أشير إلى أولئك الذين لا يعرفون هذا البلد، وبالنسبة للجميع (وأولئك الذين عادوا) — إليكم قصة مصورة قصيرة (أي سلسلة من الصور والنص).

خلق الرمز البريدي- الأرشيف (دعنا نسميه، على سبيل المثال، ملف mailer.zip)، حيث ندرج الكتالوج node_modules والملفات .env، index.js — كل شيء من كتالوج مشروعنا:

تقوم وظائف Yandex بإرسال البريد

نقوم بإنشاء دالة باسم... صحيح - الارسالفي قائمة التنقل اليسرى حدد محرر، املأ الحقول المطلوبة، وانتقل إلى علامة التبويب أرشيف مضغوط نحن نقوم بتحميل أرشيفنا ملف mailer.zip:

تقوم وظائف Yandex بإرسال البريد

وهنا خيار التنزيل المذكور سابقًا مفتاح API مباشرة هنا، بدلاً من إنشاء ملف في المشروع .env، ولا تقم بتثبيت الحزمة دوتنف. لكننا فعلنا كل هذا بالفعل، لذلك أعرضه فقط من أجل المعلومات. أي أنه لا داعي للتكرار!

تقوم وظائف Yandex بإرسال البريد

الآن في الزاوية اليمنى العليا نضغط على الزر إنشاء نسخة، وانتظر بضع ثوان. عندما يكون كل شيء جاهزًا، سننتقل تلقائيًا إلى القسم مراجعة. سنقوم بتفعيل الخيار هناك. الوظيفة العامةحتى يمكن التفاعل معه من العالم الخارجي.

تقوم وظائف Yandex بإرسال البريد

انظر الرابط الأزرق المقابل للنقش رابط للاتصال؟ انقر عليها. سيتم فتح نافذة متصفح فارغة… ولكن انتظر – لقد تلقيت رسالة:

تقوم وظائف Yandex بإرسال البريد

الآن يمكنك العودة إلى وحدة التحكم SendGridواضغط على الزر التحقق من التكامل. سيقوم النظام بفحص كل شيء من خلال قنواته، ونتيجة لذلك يجب أن تظهر شاشة مثل هذه:

تقوم وظائف Yandex بإرسال البريد

هذا كل ما في الأمر، أيها الشباب (والبنات، بالطبع) - إنه في الواقع بسيط وأنيق للغاية! سيكون هناك المزيد من المقالات. إذا كنت مهتمًا بقراءة شيء مثل هذا، اشترك حتى لا يفوتك أي شيء.

4. الدونات

تقوم وظائف Yandex بإرسال البريد

المصدر: www.habr.com

شراء استضافة موثوقة للمواقع مع حماية DDoS وخوادم VPS VDS 🔥 اشترِ استضافة مواقع ويب موثوقة مع حماية من هجمات DDoS، وخوادم VPS وVDS | ProHoster