أعلنت AWS مؤخرًا عن تخزين التعليمات البرمجية المُدار ذاتيًا لـ Lambda، مما يتيح للوظائف والطبقات الرجوع إلى حزم النشر مباشرة في حاوية S3 المملوكة للعميل بدلاً من التخزين المُدار بواسطة Lambda. يؤدي هذا التغيير إلى إزالة حصة تخزين التعليمات البرمجية لكل منطقة والتي قامت الفرق التي تدير أساطيل الوظائف الكبيرة برفعها تاريخيًا من خلال تذاكر الدعم، ورفع الإعداد الافتراضي للتخزين المُدار بواسطة Lambda من 75 جيجابايت إلى 300 جيجابايت. لقد ثبت أن الإطار الموجود في إعلان AWS، وفي رد فعل المجتمع الذي أعقبه، من السهل إساءة قراءته.
لخص جوليان وود، المؤيد الرئيسي للمطورين بدون خادم في AWS، التغيير على LinkedIn على أنه “لا توجد حدود للتخزين: قم بتخزين أكبر قدر ممكن من الوظائف وكود الطبقة الذي تسمح به الحاوية الخاصة بك،” إلى جانب مصدر واحد للحقيقة في حساب العميل الخاص والرؤية الكاملة من خلال مقاييس S3 الحالية وقواعد دورة الحياة.
أثارت هذه الصياغة السؤال الذي ستهتم به الفرق التي لا تحتوي على خادم بالفعل. تساءل أحد المعلقين عما إذا كان التغيير يعني أنه يمكن الآن شحن النماذج الأكبر حجمًا داخل حزمة وظيفية. كانت الإجابة من مطور آخر صريحة:
لا، لا تزال نفس الحدود سارية. الآن يمكن لـ AWS أن تحاسبك على تكاليف التخزين والاسترجاع أيضًا.
يكون التمييز مهمًا نظرًا لأن التخزين المُدار ذاتيًا يتغير حيث توجد حزمة النشر ويزيل الحد الأقصى للحساب الإجمالي. ومع ذلك، فهو لا يغير حدود الحزمة لكل وظيفة، والتي تظل 50 ميجابايت مضغوطة و250 ميجابايت غير مضغوطة للوظائف المستندة إلى مضغوطة و10 جيجابايت لصور الحاوية. الفرق التي تصطدم بجدار كبير في وظيفة فردية تكون في نفس الوضع تمامًا كما كان من قبل.
ما يتغير من الناحية التشغيلية هو خطوة النسخ. لاحظ Darryl Ruggles، أحد أبطال AWS Serverless، على X أن Lambda لم تعد تنشئ نسخة وسيطة من الحزمة:
مع هذا التغيير، يمكنك الرجوع إلى كود المصدر مباشرةً من مجموعاتك الخاصة ولم تعد Lambda تقوم بإنشاء نسخة وسيطة. يمكن أن يؤدي ذلك إلى تسريع تنشيط الوظيفة بعد الإنشاء والتحديثات.
وأضاف Ruggles أنه لا توجد رسوم Lambda إضافية تتجاوز تخزين S3 القياسي وأي نقل عبر المناطق، مما يحول تكلفة التخزين من حصة Lambda غير المرئية إلى خط مرئي في فاتورة S3 الخاصة بالعميل.
سير عمل النشر نفسه لم يتغير. في Reddit، سأل أحد الممارسين عن الفائدة التي تم الحصول عليها من استمرار استدعاء UpdateFunctionCode بعد استبدال الكائن في S3. يتم حل المرجع في وقت التحديث وليس بشكل مستمر، لذا فإن توجيه Lambda إلى إحدى الحاويات لا يحول تلك الحاوية إلى موجز تعليمات برمجية مباشر. قام معلق آخر بصياغة القيمة بوضوح:
إنه خيار أصلي يتغلب على حد التخزين المُدار، ولن تصل إليه معظم الفرق أبدًا.
لا يزال دعم البنية التحتية كتعليمات برمجية مستمرًا: طلب تحسين موفر Terraform الذي تم تقديمه في 15 يوليو يطلب سمة s3_object_storage_mode على aws_lambda_function، ويظل مفتوحًا بدون تنفيذ. ستحتاج الفرق الموحدة في Terraform إلى الانتظار أو الوصول إلى واجهة سطر الأوامر (CLI) وحزم SDK، حيث تتوفر المعلمة اليوم.
يتوفر تخزين التعليمات البرمجية المُدار ذاتيًا في جميع مناطق AWS التجارية دون أي رسوم Lambda إضافية.
