ما هو AWS لامدا؟ وظيفة لامدا مع أمثلة

⚡ ملخص ذكي

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

  • ☁️ نموذج بدون خادم: تقوم خدمة AWS Lambda بتشغيل التعليمات البرمجية دون الحاجة إلى توفير أو إدارة الخوادم، مما يزيل الحاجة إلى ترقيع نظام التشغيل، والتوسع، وتخطيط السعة.
  • ⚡ التنفيذ القائم على الأحداث: يتم تشغيل الوظائف من خدمات AWS مثل S3، DynamoDB، وبوابة واجهة برمجة التطبيقات (API Gateway)، وخدمة الإشعارات عبر الشبكة (SNS)، والتي تعمل فقط عند وقوع حدث ما.
  • 🧩 دعم اللغة: يدعم Lambda لغة Node.js، Python, Java، Go و C# و Ruby، بالإضافة إلى أوقات تشغيل مخصصة للغات أخرى.
  • تقريبا الدفع حسب الاستخدام: Billينطبق هذا فقط أثناء تنفيذ التعليمات البرمجية، ويتم قياسه بالمللي ثانية، مع مستوى مجاني شهري دائم يبلغ مليون طلب.
  • 🛠️ المفاهيم الأساسية: تحدد الدوال، وأوقات التشغيل، ومصادر الأحداث، والطبقات، وتدفقات السجلات كيفية تنفيذ Lambda للتعليمات البرمجية وإدارتها.
  • 🤖 مساعدة الذكاء الاصطناعي: مساعد جيت هاب و Amazon يقوم Q بإنشاء كود Lambda، بينما يقوم Lambda بتنسيق استدلال الذكاء الاصطناعي التوليدي من خلال Amazon الصخر الأساسي.

ما هي خدمة AWS Lambda؟

قبل استكشاف AWS Lambda، من المفيد فهم معنى "بدون خادم".

ما هو Serverless؟

يشير مصطلح "بدون خادم" عمومًا إلى التطبيقات التي لا تتطلب خادمًا. هذه التطبيقات لا تحتاج إلى أي خادم ولا تتطلب إدارة الخوادم.

ما هو AWS Lambda؟

AWS Lambda عبارة عن منصة حوسبة بدون خادم تعتمد على الأحداث وتقدمها Amazon كجزء من Amazon خدمات الويب. لذلك، لستَ بحاجة للقلق بشأن موارد AWS التي يجب تشغيلها، أو كيفية إدارتها. كل ما عليك فعله هو وضع الكود على Lambda، وسيتولى Lambda تشغيله.

في خدمة AWS Lambda، يتم تنفيذ التعليمات البرمجية بناءً على استجابة الأحداث في خدمات AWS، مثل إضافة أو حذف الملفات في حاوية S3، أو طلب HTTP من Amazon بوابة واجهة برمجة التطبيقات (API Gateway)، والأحداث المماثلة. ومع ذلك، Amazon لا يمكن استخدام Lambda إلا لتنفيذ مهام الخلفية.

تساعدك وظيفة AWS Lambda على التركيز على منتجك الأساسي ومنطق عملك بدلاً من إدارة التحكم في الوصول إلى نظام التشغيل، وتصحيح نظام التشغيل، وتحديد الحجم المناسب، والتزويد، والتوسع، وما إلى ذلك.

كيف يعمل AWS Lambda؟

يوضح مثال AWS Lambda التالي باستخدام الرسم التخطيطي الكتلي كيفية عمل AWS Lambda في بضع خطوات سهلة:

مخطط كتلة AWS Lambda

الخطوة 1 : قم أولاً بتحميل كود AWS Lambda الخاص بك بأي لغة تدعمها AWS Lambda. Java, Pythonتُعد لغات البرمجة Go و C# من بين اللغات التي تدعمها وظيفة AWS Lambda.

الخطوة 2 : هذه بعض خدمات AWS التي تتيح لك تشغيل AWS Lambda.

الخطوة 3 : يساعدك AWS Lambda على تحميل الكود وتفاصيل الحدث الذي يجب تشغيله بناءً عليه.

الخطوة 4 : يقوم بتنفيذ كود AWS Lambda عند تشغيله بواسطة خدمات AWS.

الخطوة 5 : لا تفرض AWS رسومًا إلا عند تنفيذ كود AWS Lambda، وليس في غير ذلك.

سيحدث هذا في السيناريوهات التالية:

  • تحميل الملفات في مجموعة S3
  • عند نقطة نهاية HTTP get/post URL تم ضربه
  • لإضافة جداول Dynamo DB وتعديلها وحذفها
  • في عملية جمع تدفقات البيانات
  • دفع الإخطار
  • استضافة الموقع
  • إرسال البريد الإلكتروني

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

الأحداث التي تؤدي إلى تشغيل AWS Lambda

فيما يلي الأحداث التي سيتم تشغيلها عند استخدام AWS Lambda.

  • إدراج البيانات وتحديثها وحذفها في جدول Dynamo DB
  • لتضمين إشعارات الدفع في SNS
  • للبحث عن سجل السجل في CloudTrail
  • الدخول إلى كائن S3
  • DynamoDB يمكنه تشغيل AWS Lambda عندما تتم إضافة بيانات أو تعديلها أو حذفها في الجدول.
  • يساعدك على جدولة الحدث لتنفيذ المهمة وفق نمط زمني منتظم.
  • تعديلات على الكائنات في مجموعات S3
  • الإخطارات المرسلة من Amazon SNS.
  • يمكن استخدام AWS Lambda لمعالجة سجلات CloudTrail.
  • تسمح لك بوابة API بتشغيل AWS Lambda بطرق GET/POST.

AWS لامدا Concepts

وظيفة: الوظيفة عبارة عن برنامج أو برنامج نصي يتم تشغيله في AWS Lambda. تقوم Lambda بتمرير أحداث الاستدعاء إلى وظيفتك، التي تقوم بمعالجة الحدث وإرجاع استجابته.

أوقات التشغيل: تتيح بيئة التشغيل تشغيل الدوال بلغات برمجة مختلفة على نفس بيئة التنفيذ الأساسية. وهذا يُسهّل عليك تهيئة دالتك في بيئة التشغيل، كما أنها تتوافق مع ما اخترته. لغة برمجة.

مصدر الحدث: مصدر الحدث هو خدمة AWS، مثل Amazon خدمة الشبكة الاجتماعية (SNS)، أو خدمة مخصصة. يساعد هذا المُشغِّل الدالة على تنفيذ منطقها.

طبقات لامدا: تعد طبقات Lambda آلية توزيع مهمة للمكتبات وأوقات التشغيل المخصصة وتبعيات الوظائف المهمة الأخرى. يساعدك مكون AWS هذا أيضًا على إدارة كود وظيفة التطوير الخاص بك بشكل منفصل عن الكود والموارد التي لا تتغير والتي يستخدمها.

تدفقات السجل: تتيح لك ميزة Log stream إضافة تعليقات توضيحية إلى رمز الوظيفة الخاص بك باستخدام عبارات تسجيل مخصصة تساعدك على تحليل تدفق التنفيذ وأداء وظائف AWS Lambda الخاصة بك.

كيفية استخدام أوس لامدا

الآن، سنتعلم كيفية استخدام AWS Lambda من خلال مثال عملي على AWS Lambda:

الخطوة 1) افتح AWS Lambda URL

انتقل إلى البرنامج المساعد في التأليف https://aws.amazon.com/lambda/ وابدأ.

كيفية استخدام أوس لامدا

الخطوة 2) أنشئ حساباً

بعد ذلك، قم بإنشاء حساب أو قم بتسجيل الدخول باستخدام حسابك الحالي.

كيفية استخدام أوس لامدا

الخطوة 3) عدّل الكود وانقر على تشغيل

في صفحة Lambda التالية، قم بتحرير الكود وانقر فوق تشغيل.

الخطوة 4) تحقق من الإخراج

سترى الناتج.

كيفية استخدام أوس لامدا

أوس لامدا مقابل أوس EC2

فيما يلي بعض الاختلافات الرئيسية بين AWS Lambda و EC2.

المعاملات AWS لامدا AWS EC2
تعريف AWS Lambda عبارة عن منصة كخدمة (PaaS). يساعدك على تشغيل وتنفيذ كود الواجهة الخلفية الخاص بك. AWS EC2 هي خدمة بنية تحتية كخدمة (IaaS). وهي توفر موارد حوسبة افتراضية.
المرونة لا يوفر أي مرونة في تسجيل الدخول إلى مثيلات الحوسبة. ولكنه يسمح لك باختيار نظام تشغيل أو بيئة تشغيل لغة مخصصة. يوفر المرونة لاختيار مجموعة متنوعة من الحالات، وأنظمة التشغيل المخصصة، وتحديثات الأمان، والشبكة، وما إلى ذلك.
عملية التثبيت عليك تحديد البيئة التي تريد تشغيل الكود فيها ودفع الكود إلى AWS Lambda. لأول مرة في EC2، يتعين عليك اختيار نظام التشغيل وتثبيت كافة البرامج المطلوبة ثم إدخال الرمز الخاص بك في EC2.
قيود البيئة يقتصر استخدامه على عدد قليل من اللغات. لا قيود البيئة.

مقارنة بين AWS Lambda و AWS Elastic Beanstalk

فيما يلي بعض الاختلافات الرئيسية بين AWS Lambda و Elastic Beanstalk.

المعاملات AWS Elastic Beanstalk AWS لامدا
المهمة الرئيسية قم بنشر التطبيقات وإدارتها على AWS Cloud دون القلق بشأن البنية التحتية التي تقوم بتشغيل تلك التطبيقات. تُستخدم خدمة AWS Lambda لتشغيل وتنفيذ كود الواجهة الخلفية. لا يمكنك استخدامها لنشر تطبيق.
اختيار موارد AWS يمنحك ذلك حرية اختيار موارد AWS؛ على سبيل المثال، يمكنك اختيار مثيل EC2 الأمثل وفقًا لتطبيقك. لا يمكنك تحديد موارد AWS، مثل نوع مثيل EC2؛ تقدم Lambda موارد بناءً على عبء العمل الخاص بك.
نوع النظام إنه نظام الدولة. إنه نظام عديم الجنسية.

حالات استخدام AWS Lambda

تُستخدم خدمة AWS Lambda في مجموعة واسعة من التطبيقات مثل:

  • يساعدك في عملية ETL
  • يتيح لك إجراء معالجة الملفات في الوقت الفعلي ومعالجة الدفق في الوقت الفعلي
  • تستخدم لإنشاء تطبيقات الويب
  • استخدام في Amazon منتجات مثل Alexa Chatbots و Amazon صدى / اليكسا
  • معالجة البيانات (تحليلات التدفق في الوقت الحقيقي)
  • النسخ الاحتياطي التلقائي للمهام اليومية
  • أنظمة خلفية قابلة للتوسع (تطبيقات الجوال، أجهزة إنترنت الأشياء)
  • يساعدك على تنفيذ منطق الواجهة الخلفية من جانب الخادم
  • يتيح لك تصفية البيانات وتحويلها

أفضل الممارسات لوظيفة Lambda

فيما يلي بعض أفضل الممارسات لوظائف AWS Lambda:

  • استخدم "المهلة" الصحيحة.
  • استخدم وظائف التخزين المحلي الذي يبلغ حجمه 500 ميجابايت في مجلد /temp.
  • قلل من استخدام التعليمات البرمجية الخاصة ببدء التشغيل والتي لا ترتبط بشكل مباشر بمعالجة الحدث الحالي.
  • يجب عليك استخدام مراقبة CloudWatch المضمنة لوظائف Lambda الخاصة بك لعرض فترات استجابة الطلب وتحسينها.

متى لا تستخدم AWS Lambda

فيما يلي الحالات التي لا يُعد فيها استخدام لامدا خيارًا مثاليًا:

  • لا يُعد استخدام AWS Lambda مناسبًا لحزم البرامج أو التطبيقات التي تعتمد على استدعاء وظائف أساسية Windows استدعاءات الإجراءات البعيدة (RPCs).
  • إذا تم استخدامه لتطبيقات برمجية مخصصة مع اتفاقيات ترخيص مثل معالجة مستندات مايكروسوفت أوفيس، Oracle قواعد البيانات وما إلى ذلك.
  • لا ينبغي استخدام AWS Lambda لعمليات الأجهزة المخصصة مثل تسريع وحدة معالجة الرسومات (GPU) وتقارب الأجهزة.

مزايا استخدام AWS Lambda

فيما يلي مزايا وفوائد استخدام خدمة AWS Lambda:

  • تُعد خدمة AWS Lambda أداة مرنة للغاية للاستخدام.
  • يساعدك ذلك في منح حق الوصول إلى الموارد، بما في ذلك الشبكات الافتراضية الخاصة (VPCs).
  • المؤلف مباشرة مع WYSIWمحرر YG في وحدة التحكم.
  • يمكنك استخدامه كمكون إضافي لـ Eclipse و البصرية ستوديو.
  • وبما أنها بنية بدون خوادم، فلن تحتاج إلى القلق بشأن إدارة الخوادم أو توفيرها.
  • لا تحتاج إلى إعداد أي آلة افتراضية.
  • يساعد المطورين على تشغيل وتنفيذ استجابة التعليمات البرمجية للأحداث دون إنشاء أي بنية تحتية.
  • ما عليك سوى دفع تكلفة وقت الحساب المستغرق، فقط عند تشغيل التعليمات البرمجية الخاصة بك.
  • يمكنك مراقبة أداء التعليمات البرمجية الخاصة بك في الوقت الفعلي من خلال CloudWatch.
  • يتيح لك ذلك تشغيل التعليمات البرمجية الخاصة بك دون الحاجة إلى توفير أو إدارة أي خادم آخر.
  • يساعدك على تنفيذ التعليمات البرمجية فقط عند الحاجة.
  • يمكنك توسيع نطاقه تلقائيًا للتعامل مع عدد قليل من الطلبات يوميًا وحتى دعم أكثر من آلاف الطلبات في الثانية.
  • يمكن تكوين AWS Lambda بمساعدة مؤقتات الأحداث الخارجية لتنفيذ المهام المجدولة.
  • يجب تهيئة وظيفة Lambda في AWS باستخدام الأحداث الخارجية والمؤقتات حتى يمكن استخدامها للجدولة.
  • وظائف لامدا عديمة الحالة بحيث يمكن توسيع نطاقها بسرعة.
  • تتميز خدمة AWS Lambda بالسرعة لذا فهي ستنفذ التعليمات البرمجية الخاصة بك خلال أجزاء من الثانية.

حدود AWS Lambda

فيما يلي سلبيات/عيوب استخدام AWS Lambda:

  • أداة AWS Lambda ليست مناسبة للمشاريع الصغيرة.
  • تعتمد خدمة AWS Lambda بشكل كامل على AWS للبنية التحتية، لذلك لا يمكنك تثبيت أي برامج إضافية إذا كان الكود الخاص بك يتطلب ذلك.
  • يبلغ الحد الافتراضي للتنفيذ المتزامن 1,000 لكل منطقة، ويمكن زيادته عند الطلب.
  • يمكن أن يتراوح حجم ذاكرته بين 128 ميجابايت و 10,240 ميجابايت.
  • يجب ألا يتجاوز حجم طلب الحدث 128 كيلو بايت.
  • تساعدك وظائف Lambda على كتابة سجلاتها فقط في CloudWatch. هذه هي الأداة الوحيدة التي تسمح لك بمراقبة وظائفك أو استكشاف أخطاءها وإصلاحها.
  • يقتصر وقت تنفيذ التعليمات البرمجية على 15 دقيقة.

الأسئلة الشائعة

تدعم خدمة AWS Lambda بشكل أصلي Node.js، Python, Javaيدعم النظام لغات البرمجة التالية: Go، وC#، وPowerShell، وRuby. كما يوفر واجهة برمجة تطبيقات وقت التشغيل ودعم صور الحاويات، مما يتيح لك تشغيل أي لغة برمجة أخرى تقريبًا، وبالتالي نادرًا ما تكون الفرق مقيدة بمجموعة الأدوات المفضلة لديها.

تتضمن خدمة AWS Lambda طبقة مجانية دائمة تتيح مليون طلب و400,000 ألف جيجابايت-ثانية من الحوسبة شهريًا. بعد ذلك، تدفع فقط مقابل الطلبات ووقت الحوسبة الذي يستخدمه برنامجك فعليًا، ويتم احتساب التكلفة بالمللي ثانية.

بدء التشغيل البارد هو التأخير القصير الذي يحدث عندما تقوم Lambda بتهيئة بيئة تنفيذ جديدة لوظيفة كانت خاملة. يمكنك تقليل هذا التأخير باستخدام التزامن المُهيأ، أو الحزم الأصغر حجمًا، أو SnapStart. Java الوظائف.

نعم. بالإضافة إلى تحميل ملف مضغوط (ZIP)، تتيح لك Lambda تغليف دالة كصورة حاوية يصل حجمها إلى 10 جيجابايت. وهذا يناسب التبعيات الكبيرة ومكتبات التعلم الآلي مع الحفاظ علىping نفس نموذج التنفيذ القائم على الأحداث وبدون خادم.

تُشغّل Lambda وظائف قصيرة تعتمد على الأحداث مع قابلية التوسع التلقائي وفواتير بالمللي ثانية. بينما تُشغّل AWS Fargate أحمال عمل حاويات طويلة دون الحاجة إلى إدارة الخوادم. اختر Lambda للاستجابة السريعة للأحداث، وFargate لمهام الحاويات المستمرة طويلة الأمد.

نعم. عادةً ما تدعم لامدا تطبيقات الذكاء الاصطناعي من خلال تشغيل الاستدلال الخفيف وتنسيق المكالمات إلى الخدمات مثل Amazon Bedrock و SageMaker. يساعد دعم صور الحاويات في تجميع مكتبات التعلم الآلي، بينما تتولى Lambda توسيع نطاق خط أنابيب الذكاء الاصطناعي التوليدي.

نعم. مساعد الطيار جيثب يكتب دوال المعالجة من تعليق أو اسم، بينما Amazon يضيف Q Developer مساعدة متوافقة مع AWS لسياسات IAM و CloudFormation واستدعاءات SDK، مما يسرع عملية تطوير التطبيقات بدون خادم.

امنح كل وظيفة دور IAM بأقل امتيازات، وخزّن البيانات السرية في متغيرات بيئية مشفرة أو في مدير البيانات السرية، وضع الوظائف الحساسة داخل شبكة VPC. ثم يقوم CloudWatch وCloudTrail بتسجيل النشاط لأغراض المراقبة والتدقيق.

تلخيص هذه التدوينة بـ: