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

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

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

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

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

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

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

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

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

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

في الخطوة التالية ، اختر نود.جي إس:

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

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

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

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

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

2. كتابة التعليمات البرمجية

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

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

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

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

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

touch index.js
touch .env

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

وإذا كنت تريد عملًا أقل ، فقم باستنساخ المستودع ، وقم بتثبيت الحزم:

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

إضافة تعليق