كيفية إدارة الإصدارات المختلفة من وظائف Lambda

جدول المحتويات:

كيفية إدارة الإصدارات المختلفة من وظائف Lambda
كيفية إدارة الإصدارات المختلفة من وظائف Lambda
Anonim

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

$ LATEST Tracks أحدث التحديثات

في أي وقت تقوم فيه بإجراء تغيير على وظيفة Lambda ، تنعكس التغييرات تلقائيًا في إصدار يسمى $ LATEST. هذا يتتبع آخر التحديثات ، وهو الإصدار الافتراضي لمعظم وظائف Lambda. تؤدي التغييرات من صفحة تحرير Lambda و Cloud9 IDE والتحميل المضغوط من CLI إلى تحديث هذا الإصدار.

لهذا السبب ، لا ينبغي استخدام إصدار $ LATEST في الإنتاج ، لأن أي تحديثات لوظيفة اختبار الميزات الجديدة ستؤثر على حركة الإنتاج. بالإضافة إلى ذلك ، لا توجد طريقة سهلة لنشر التحديثات بمرور الوقت باستخدام CodeDeploy إذا كنت تستخدم $ LATEST.

بدلاً من ذلك ، نوصي بإنشاء إصدارات جديدة لكل إصدار ، واسم مستعار "للإنتاج" يشير إليه. يمكن استخدام LATEST $ للتطوير ، مع الاسم المستعار الخاص به الذي يشير إليه أيضًا.

إضافة نسخة جديدة (وتحويل حركة المرور إليها)

العمل مع الإصدارات سهل للغاية. من Lambda Management Console ، حدد وظيفتك ، وانقر على القائمة المنسدلة "الإصدار:". سيسمح لك هذا بالتبديل بين الإصدارات وعرض الإصدارات المستخدمة حاليًا.

قائمة إصدارات Lambda
قائمة إصدارات Lambda

لنشر إصدار جديد ، ستحتاج إلى التبديل إلى إصدار $ 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 على أنه تحديث مكدس ، وليس مكدس جديد ، وسيحل محل إصدار الوظيفة الحالي بالإصدار المحدث.

موضوع شعبي