وظائف Serverless بلغة JavaScript: AWS Lambda من الألف إلى الياء

مدرب بايثون أونلاين للمبتدئين

تعلم Python بسهولة دون إرهاق نظري. حل مهام عملية مع التحقق التلقائي واكتب الكود مباشرة في المتصفح.

ابدأ الدورة

مقدمة إلى عالم Serverless و AWS Lambda



تتجه التطويرات السحابية الحديثة بشكل متزايد إلى بنية serverless (بدون خادم). على الرغم من الاسم، فإن الخوادم لم تختفِ - أنت فقط تتوقف عن التفكير فيها. AWS Lambda هي خدمة من Amazon تتيح تشغيل الكود دون تخصيص وإدارة الخوادم. أنت تدفع فقط مقابل وقت التنفيذ الفعلي وعدد الطلبات.



في هذه المقالة، سنشرح AWS Lambda بلغة JavaScript (Node.js) من الأساسيات إلى الأمثلة العملية. ستتعلم كيفية إنشاء الوظائف وتكوينها ونشرها، بالإضافة إلى التعرف على أفضل الممارسات.



أساسيات AWS Lambda لـ Node.js



ما هي وظيفة Lambda؟

وظيفة Lambda هي كتلة كود معزولة يتم تنفيذها استجابةً لحدث (مشغل). تستقبل الوظيفة event (بيانات الحدث) و context (معلومات عن بيئة التنفيذ) وتعيد النتيجة.



هيكل أبسط وظيفة Lambda

تبدو الوظيفة الأساسية بلغة Node.js كما يلي:



exports.handler = async (event, context) => {    const name = event.queryStringParameters?.name || 'ضيف';    const response = {        statusCode: 200,        body: JSON.stringify({ message: `مرحبًا، ${name}!` }),    };    return response;};


  • exports.handler — نقطة الدخول الإلزامية.
  • event — يحتوي على البيانات المرسلة من المشغل (مثل طلب HTTP من API Gateway).
  • context — يوفر طرقًا للعمل مع التنفيذ (الوقت، المسجل، المعرف).
  • يجب أن تكون الوظيفة async أو تعيد Promise.


المشغلات (مصادر الاستدعاء)

Lambda لا توجد في فراغ. يمكن استدعاؤها بواسطة:

  • API Gateway — طلبات HTTP (REST/WebSocket).
  • S3 — رفع/حذف الملفات.
  • DynamoDB Streams — التغييرات في قاعدة البيانات.
  • SQS/SNS — قوائم انتظار الرسائل.
  • CloudWatch Events — جدولة (cron).


إنشاء ونشر وظيفة Lambda



الخطوة 1: إعداد البيئة

ستحتاج إلى:

  • حساب AWS.
  • تثبيت AWS CLI وإعداد بيانات الاعتماد (credentials).
  • Node.js (الإصدار 18 أو 20، الموصى به من AWS).


الخطوة 2: إنشاء الوظيفة عبر لوحة التحكم

هذه أسرع طريقة للمبتدئين:

  1. ادخل إلى AWS Management Console → Lambda.
  2. اضغط "إنشاء وظيفة" → "من الصفر".
  3. حدد اسمًا، واختر بيئة التشغيل Node.js 20.x.
  4. اضغط "إنشاء".

في محرر الكود، الصق مثالنا أعلاه واضغط "Deploy". تم!



الخطوة 3: النشر باستخدام AWS CLI

لأتمتة النشر، استخدم الأمر:

zip -r function.zip index.js node_modulesaws lambda update-function-code \    --function-name my-first-lambda \    --zip-file fileb://function.zip


سيناريوهات متقدمة وأفضل الممارسات



العمل مع متغيرات البيئة

لا تخزن الأسرار في الكود أبدًا. استخدم process.env:

const dbPassword = process.env.DB_PASSWORD;const tableName = process.env.TABLE_NAME;

يتم تعيين المتغيرات في إعدادات الوظيفة (Configuration → Environment variables).



معالجة الأخطاء والتسجيل

استخدم المسجل المدمج console.log - فهو يرسل السجلات تلقائيًا إلى CloudWatch:

exports.handler = async (event) => {    console.log('تم استلام الحدث:', JSON.stringify(event, null, 2));    try {        // الكود الخاص بك    } catch (error) {        console.error('خطأ:', error.message);        throw e                

المدونات

توصيات الكتب