وظائف Lambda هي إدخال مفيد للغاية لخدمات الحوسبة في AWS. نظرًا لأنها في الأساس مجرد وظيفة في السحابة ، فإن تتبع الإصدارات المختلفة وطرح التحديثات أمر بالغ الأهمية للعمل معها بشكل فعال.
$ LATEST Tracks أحدث التحديثات
في أي وقت تقوم فيه بإجراء تغيير على وظيفة Lambda ، تنعكس التغييرات تلقائيًا في إصدار يسمى $ LATEST. هذا يتتبع آخر التحديثات ، وهو الإصدار الافتراضي لمعظم وظائف Lambda. تؤدي التغييرات من صفحة تحرير Lambda و Cloud9 IDE والتحميل المضغوط من CLI إلى تحديث هذا الإصدار.
لهذا السبب ، لا ينبغي استخدام إصدار $ LATEST في الإنتاج ، لأن أي تحديثات لوظيفة اختبار الميزات الجديدة ستؤثر على حركة الإنتاج. بالإضافة إلى ذلك ، لا توجد طريقة سهلة لنشر التحديثات بمرور الوقت باستخدام CodeDeploy إذا كنت تستخدم $ LATEST.
بدلاً من ذلك ، نوصي بإنشاء إصدارات جديدة لكل إصدار ، واسم مستعار "للإنتاج" يشير إليه. يمكن استخدام LATEST $ للتطوير ، مع الاسم المستعار الخاص به الذي يشير إليه أيضًا.
إضافة نسخة جديدة (وتحويل حركة المرور إليها)
العمل مع الإصدارات سهل للغاية. من Lambda Management Console ، حدد وظيفتك ، وانقر على القائمة المنسدلة "الإصدار:". سيسمح لك هذا بالتبديل بين الإصدارات وعرض الإصدارات المستخدمة حاليًا.

لنشر إصدار جديد ، ستحتاج إلى التبديل إلى إصدار $ LATEST ، والنقر فوق "نشر إصدار جديد" من القائمة المنسدلة "الإجراءات".

يتم الإشارة إلى الإصدارات الجديدة بشكل قديم من خلال عدد صحيح متزايد ، مع عدم وجود طريقة لاستخدام تنسيق main.minor.patch القياسي المستخدم في معظم إصدارات البرامج. إذا كنت حقًا بحاجة إلى هذا التنسيق ، فننصحك باستخدام CodePipeline مع عمليات نشر SAM ، وتتبع إصدارات Lambda الخاصة بك على Git.
يمكن استخدام هذا الإصدار الجديد في خدمات أخرى ، مثل بوابة API. ومع ذلك ، لا تريد أن تضطر إلى تحديث كل خدمة تستخدم وظيفة Lambda في كل مرة يتم فيها تحديث الوظيفة نفسها. بدلاً من ذلك ، يجب عليك إنشاء اسم مستعار ، يشير إلى رقم إصدار معين ، ويمكن تعيينه كنقطة نهاية لبوابة API. بهذه الطريقة ، كلما نشرت إصدارًا جديدًا ، ستحتاج ببساطة إلى تحديث الاسم المستعار لتبديل كل شيء.
يمكنك إنشاء أسماء مستعارة من نفس قائمة "الإجراءات". أعطه اسمًا ، مثل "الإنتاج" ، وحدد إصدارًا للإشارة إليه.

يمكن للأسماء المستعارة أيضًا نقل حركة المرور تدريجيًا إلى إصدار جديد. بينما يمكنك إعداد هذا يدويًا ، فإنه يُستخدم غالبًا لعمليات نشر CodeDeploy ، حيث يمكن نشر إصدارات جديدة من وظائفك تدريجيًا ، على سبيل المثال ، 10٪ كل خمس دقائق أو نحو ذلك. بهذه الطريقة ، يمكنك اكتشاف الأخطاء مبكرًا وإصدارات التراجع قبل أن تؤثر على الجميع.
عمليات النشر SAM إضافة إصدارات جديدة تلقائيًا
يعد إنشاء الإصدارات يدويًا مفيدًا ، ولكن إذا كنت تدير الكثير من الوظائف ، فمن المحتمل أنك تستخدم عمليات نشر SAM بدلاً من ذلك. وظائف Lambda التي تم نشرها باستخدام قوالب SAM ستضيف تلقائيًا إصدارًا جديدًا (وتحديث $ LATEST).
بالاقتران مع Git للتحكم في الإصدار وخدمة AWS CodePipeline CI / CD ، مما يجعل إدارة الإصدار لوظائف Lambda أسهل بكثير. عندما يتم دفع تغيير إلى فرع التحرير في التحكم بالمصادر ، سيتم تشغيل CodePipeline تلقائيًا وتحديث وظائفك.إذا كنت تعمل بلغة تحتاج إلى ترجمة (أو تحويل في حالة TypeScript) ، فيمكنك أيضًا إرسال رمز وظيفتك إلى CodeBuild للتعامل مع هذه المرحلة أيضًا.
نشر SAM هو امتداد لـ CloudFormation ، لذا فإن أي عمليات نشر يتم إجراؤها باستخدام SAM ستنشئ مكدس CloudFormation جديدًا. عندما يتم دفع التحديثات ، يتعرف CloudFormation على أنه تحديث مكدس ، وليس مكدس جديد ، وسيحل محل إصدار الوظيفة الحالي بالإصدار المحدث.