AWS / المتوسط: عقود خدمات التطبيق / الدرس 8
استدعاء Lambda والتزامن
اختر عقد الاستدعاء والمحاولة والهوية والشبكة والسعة دون افتراض عمل ينفذ مرة واحدة.
في هذه الصفحة
أهداف الدرس
- اشرح افتراضات ومسؤوليات ومفاضلات موضوع «استدعاء Lambda والتزامن».
- فسر المثالين وميز النية المعلنة والدليل المتحقق.
- شخص الإخفاقات وعلل القرارات المشروحة دون استخدام حساب AWS أواعتماد أوخدمة حقيقية.
الدالة حد تنفيذ واحد
تشغل Lambda شيفرة ببيئة وموارد ودور وأحداث وحدود ولا تلغي التصميم والملكية. تتطور البيئات والمعماريات والحزم والميزات؛ فتحقق وقت الإصدار. Python هنا محاكاة محلية لا دالة منشورة أوادعاء دعم إصدار. افصل التهيئة والاستدعاء والاعتماد والحالة؛ وقد تعاد البيئة دون ضمان بقاء الذاكرة أوتفردها.
تسمية مصدر الاستدعاء والمحاولة
تختلف المتزامنة وغير المتزامنة وربط المصدر بالإقرار والمحاولة والترتيب والفشل، وقد يعيد المستدعي أيضا. قد تجهل بعد المهلة أثرا سبق. يسمي السجل مستهلك طابور ومالك المحاولة لا قاعدة Lambda عامة. اقرأ التكامل والدفعة والظهور والاحتفاظ والوجهة الحالية، وتحمل التكرار حيث يسمح؛ ولا تجعل الحوسبة المعاملة مرة واحدة.
invocation_contract: queue-event-source-mapping
operation_identity: application-defined-stable-id
retry_owner: documented-queue-and-integration-policy
partial_batch_behavior: explicitly-reviewed
failure_destination: approved-recovery-workflow
external_effects: idempotent-or-reconciled
السجل بيانات مراجعة لا إعداد Lambda أوادعاء سياسة واحدة لكل مصدر.
تقييد التزامن وحمل الاعتماد
يعد التزامن التنفيذ المتداخل لا المعدل فقط. قد تحجز المحجوزة وتقيد ضمن حد الحساب، وتجهز provisioned سعة بآثار كلفة، ولا يفتح أيهما القاعدة بلا حد. تؤثر التهيئة والمدة والمحاولة والطابور؛ فحدد أقصى يلائم الخلفية. تحاكي الشيفرة إزالة تكرار متسلسل فقط بلا ضمان تواز أوفقد عملية أوتوصية سعة.
saved = {}
def handle(operation_id):
if operation_id not in saved:
saved[operation_id] = "lab-result-" + str(len(saved) + 1)
return saved[operation_id]
print(handle("lab-event-a"), handle("lab-event-a"))
print(len(saved))
lab-result-1 lab-result-1
1
يعيد المعرف نتيجة واحدة بالذاكرة، وليس تنفيذا دائما أومتزامنا ولا يستدعي خدمة.
مراجعة الدور ومسار الشبكة مستقلين
يمنح الدور أفعالا لا مسارا لقاعدة خاصة. تتفرق أدوار الربط والشبكة وDNS والهوية، ولا تمنح شبكة عامة إنترنت تلقائيا لبيئة الدالة. راجع التصميم الحالي واحفظ الاعتماد وأعد استخدام العملاء بعناية ولا تسجل الأحداث والبيئة كاملة. قد ينجح الاستدعاء ويفشل العمل أوتخفى كتابة.
التحقق من النتائج الدائمة ومعالجة الفشل
يحتاج منع التكرار الفعلي ربطا دائما ذريّا للهوية والعمل والنتيجة واحتفاظا وتعارضا؛ ولا يكفي قاموس بيئة. اختبر الخطأ والتكرار والجزئي والمهلة والغياب والاستعادة بعزلة. احفظ مراجع آمنة. لا تنشئ الدورة دالة أوربطا أودورا أوضبطا أواتصالا أواستدعاء، ولا يثبت المحلي تكاملا أوحجما.
الأخطاء الشائعة وإصلاحها
تُسند قاعدة محاولة واحدة لكل فشل
- لماذا يحدث؟
- أُغفل المصدر والتكامل.
- كيف تصلحه؟
- اقرأ عقد المصدر والمستدعي.
- كيف تتجنب تكراره؟
- سجل الملكية لكل تكامل.
يستخدم متغير عام لإزالة دائمة للتكرار
- لماذا يحدث؟
- اختلطت إعادة البيئة بالحالة الدائمة.
- كيف تصلحه؟
- استخدم تصميما ذريّا دائما.
- كيف تتجنب تكراره؟
- اختبر التزامن وفقد البيئة.
يفترض أن العامة توفر الإنترنت
- لماذا يحدث؟
- لم يراجع سلوك ربط الدالة.
- كيف تصلحه؟
- افحص المسار والنقطة والخروج.
- كيف تتجنب تكراره؟
- افصل الإذن والاتصال.
اختبر فهمك
1. تنتهي مهلة دالة بعد طلب خصم بعيد. هل الإعادة آمنة تلقائيا؟
اعرض الحل المشروح
لا؛ قد نجح البعيد. استخدم مفتاحا معتمدا أوسو النتيجة قبل التكرار؛ فالمهلة غياب رد لا تراجع كل العمل.
2. لماذا قد يحسن حد تزامن أقل الموثوقية؟
اعرض الحل المشروح
قد يحمي قاعدة أوجهة محدودة ويتيح طابورا واستعادة محدودين. اختر بالاعتماد والزمن وافحص المحاولة والطابور لا زيادة التوازي دائما.
أهم ما تعلمته
- تشغل Lambda شيفرة ببيئة وموارد ودور وأحداث وحدود ولا تلغي التصميم والملكية.
- يعد التزامن التنفيذ المتداخل لا المعدل فقط.
- يحتاج منع التكرار الفعلي ربطا دائما ذريّا للهوية والعمل والنتيجة واحتفاظا وتعارضا؛ ولا يكفي قاموس بيئة.