0%
AWS Lambda وStep Functions ببساطة: دليل للمبتدئين

AWS Lambda وStep Functions ببساطة: دليل للمبتدئين

تعرّف على AWS Lambda وStep Functions، وهما خدمتان أساسيتان من خدمات AWS بدون خوادم (serverless)، وحالات استخدامهما وكيفية استخدامهما معًا لإنشاء سير عمل آلي.

I

InSkillCoach

· دقيقة

AWS Lambda وStep Functions ببساطة: دليل للمبتدئين

مقدمة

يُعد AWS Lambda وAWS Step Functions من الخدمات الأساسية في AWS التي تعمل بدون خوادم (serverless)، وتتيحان تنفيذ الشيفرة البرمجية دون إدارة أي بنية تحتية. سيساعدك هذا المقال على فهم هاتين الخدمتين والفروق بينهما، وكيفية استخدامهما معًا لإنشاء سير عمل آلي.

AWS Lambda: تنفيذ الشيفرة عند الطلب

ما الغرض منه؟

يُستخدم Lambda لتنفيذ دالة قصيرة (مثل مهمة صغيرة)، فقط عند الحاجة إليها. لا حاويات ولا خوادم.

متى تستخدمه؟

  • عندما تريد الاستجابة لحدث فقط (مثل: استدعاء API، أو وصول صورة إلى S3…)
  • عندما تكون شيفرتك قصيرة ولا تعمل إلا لبضع ثوانٍ في كل مرة
  • عندما تريد الدفع مقابل الاستخدام الفعلي فقط

مثال عملي:

يرسل أحدهم نموذجًا على موقعك، وتريد إرسال بريد إلكتروني تلقائيًا.
تكتب دالة تقوم بذلك (بلغة Python أو Node)، ثم تقول لـ Lambda:

“نفّذ هذه الشيفرة فقط عند إرسال النموذج.”

AWS Step Functions: تنسيق سير العمل

ما الغرض منه؟

تتيح Step Functions التنسيق بين عدة دوال Lambda وخدمات AWS الأخرى ضمن سير عمل مرئي ودون كتابة شيفرة.

متى تستخدمه؟

  • عندما يتطلب لديك إجراء ما عدة خطوات
  • عندما تريد التعامل مع الأخطاء وإعادة المحاولات (retries) بأسلوب أنيق
  • عندما تريد عرض تنفيذ سير العمل ومتابعته بصريًا

مثال عملي:

لديك عملية تسجيل مستخدم تتطلب عدة خطوات:

  1. التحقق من المعلومات
  2. إنشاء حساب في قاعدة البيانات
  3. إرسال بريد إلكتروني للتأكيد
  4. إنشاء ملف شخصي افتراضي

يمكنك تنسيق كل ذلك باستخدام Step Functions دون كتابة أي شيفرة تنسيق.

المقارنة مع Fargate

الخاصيةFargateLambda
نوع التطبيقتطبيق كاملدالة قصيرة / مهمة واحدة
صيغة النشرحاوية Dockerشيفرة (ملف .js، .py، إلخ)
متى يبدأ العمل؟يعمل دائمًا أو عند الطلبفقط عند حدوث شيء ما
مدة التنفيذمدة طويلة (دقائق، ساعات، أيام)مدة قصيرة (بضع ثوانٍ، بحد أقصى 15 دقيقة)
الاستخدام المعتادواجهات API للويب، الواجهة الخلفية، المواقع، الخدمات المصغّرةالمهام المتقطعة، الأتمتة، واجهات API الخفيفة
مستوى التحكممتوسط (تدير حاويتك بنفسك)ضعيف جدًا (تدير الشيفرة فقط)
الدفعبالدقيقة لكل حاويةبحسب عدد الاستدعاءات ومدة التنفيذ الدقيقة

حالات استخدام عملية

مثال لموقع تجارة إلكترونية:

  • لديك واجهة خلفية كاملة تتضمن سلة المشتريات وتسجيل الدخول والدفع → Fargate
  • عندما يُجري أحدهم عملية شراء، تريد إرسال إيصال عبر البريد الإلكتروني → Lambda
  • تريد تنسيق عملية الشراء بأكملها → Step Functions

مثال لنظام معالجة الصور:

  • تريد معالجة الصور عند رفعها → Lambda
  • تريد تنسيق عدة مراحل (تغيير الحجم، الضغط، التحليل) → Step Functions

كيف يعمل Lambda وStep Functions معًا

تستخدم Step Functions خدمة Lambda كإحدى “الحالات” (steps) الممكنة فيها. إليك كيفية تكاملهما:

  1. تنشئ عدة دوال Lambda لمهام مختلفة
  2. تحدد سير عمل في Step Functions يستدعي هذه الدوال بترتيب معيّن
  3. تتولى Step Functions إدارة التنفيذ وإعادة المحاولات ومعالجة الأخطاء

مثال على سير عمل في Step Functions

{
  "Comment": "Un workflow de traitement de commande",
  "StartAt": "VérifierCommande",
  "States": {
    "VérifierCommande": {
      "Type": "Task",
      "Resource": "arn:aws:lambda:region:account:function:VerifierCommande",
      "Next": "TraiterPaiement"
    },
    "TraiterPaiement": {
      "Type": "Task",
      "Resource": "arn:aws:lambda:region:account:function:TraiterPaiement",
      "Next": "PréparerLivraison"
    },
    "PréparerLivraison": {
      "Type": "Task",
      "Resource": "arn:aws:lambda:region:account:function:PreparerLivraison",
      "End": true
    }
  }
}

أفضل الممارسات

بالنسبة إلى Lambda

  1. اجعل الدوال صغيرة ومركّزة: دالة واحدة = مهمة واحدة
  2. استخدم مهلات زمنية (timeouts) مناسبة: الحد الأقصى 15 دقيقة لـ Lambda
  3. عالج الأخطاء بشكل صحيح: أعد رموز أخطاء مناسبة
  4. استخدم متغيرات البيئة للإعدادات
  5. حسّن حزمة النشر لتقليل أزمنة بدء التشغيل

بالنسبة إلى Step Functions

  1. صمّم سير عمل متماثل الأثر (idempotent): يجب أن يكون من الممكن تنفيذه عدة مرات دون مشكلة
  2. استخدم مهلات زمنية مناسبة لكل حالة
  3. طبّق معالجة قوية للأخطاء مع حالات للاسترداد
  4. استخدم الفروع الشرطية للتعامل مع سيناريوهات مختلفة
  5. قلّل من تعقيد سير العمل للحفاظ على سهولة قراءته

الخاتمة

يُعد AWS Lambda وStep Functions خدمتين قويتين تتيحان إنشاء تطبيقات serverless متطورة دون إدارة أي بنية تحتية. يُعد Lambda مثاليًا لتنفيذ الشيفرة عند الطلب، بينما تتيح Step Functions تنسيق عدة دوال وخدمات ضمن سير عمل معقد.

بفهم نقاط قوة كل خدمة وحالات استخدامها، ستتمكن من تصميم بنى serverless فعّالة وقابلة للتوسع.

موارد إضافية

InSkillCoach

نبذة عن InSkillCoach

خبير في التدريب والتقنيات

مدرّب متخصص في التقنيات المتقدمة والذكاء الاصطناعي، تدعمه شركة GNeurone Inc.

الشهادات:

  • AWS Certified Solutions Architect – Professional
  • شهادات Google Cloud
  • Microsoft Certified: DevOps Engineer Expert
  • Certified Kubernetes Administrator (CKA)
  • CompTIA Security+
708
269

التعليقات

التعليقات مدعومة عبر GitHub Discussions

سجّل الدخول باستخدام GitHub للمشاركة في النقاش

تم نسخ الرابط!