Comprendre comment Lambda gère les mises à jour des versions d'exécution - AWS Lambda

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Comprendre comment Lambda gère les mises à jour des versions d'exécution

Lambda maintient à jour chaque environnement d’exécution géré avec des mises à jour de sécurité, des corrections de bogues, de nouvelles fonctionnalités, des améliorations de performance et la prise en charge des versions mineures. Ces mises à jour d’environnement d’exécution sont publiées sous forme de versions d’environnement d’exécution. Lambda applique les mises à jour d’environnement d’exécution aux fonctions en faisant migrer la fonction d’une version antérieure vers une nouvelle version.

Par défaut, pour les fonctions utilisant des exécutions gérées, Lambda applique des mises à jour automatiquement. Avec les mises à jour de l’environnement d’exécution automatiques, Lambda prend en charge la charge opérationnelle de l’application de correctifs aux versions de l’environnement d’exécution. Pour la plupart des clients, les mises à jour automatiques sont le bon choix. Vous pouvez modifier ce comportement par défaut en configurant les paramètres de gestion de l'exécution.

Lambda publie également chaque nouvelle version de l’environnement d’exécution sous forme d’image de conteneur. Pour mettre à jour les versions des environnements d’exécution pour les fonctions basées sur des conteneurs, vous devez créer une nouvelle image de conteneur à partir de l’image de base mise à jour et redéployer votre fonction.

Chaque version d'exécution est associée à un numéro de version et à un ARN (Amazon Resource Name). Les numéros de version de l’environnement d’exécution utilisent un schéma de numérotation que Lambda définit, indépendamment des numéros de version utilisés par le langage de programmation. La version d'exécution ARN est un identifiant unique pour chaque version d'exécution. Vous pouvez consulter la version ARN d'exécution actuelle de votre fonction dans la console Lambda ou dans la INIT_STARTligne de vos journaux de fonctions.

Les versions des environnements d’exécution ne doivent pas être confondues avec les identifiants des environnements d’exécution. Chaque environnement d’exécution possède un identifiant unique, tel que python3.12 ou nodejs20.x. Ceux-ci correspondent à chaque version majeure du langage de programmation. Les versions de l’environnement d’exécution décrivent la version corrective d’un environnement d’exécution individuel.

Note

Le numéro de version d'exécution ARN pour un même environnement d'exécution peut varier selon Régions AWS les CPU architectures.

Modes de mise à jour pendant

Lambda s’efforce de fournir des mises à jour d’environnement d’exécution qui sont rétrocompatibles avec les fonctions existantes. Cependant, comme pour les correctifs logiciels, il existe de rares cas dans lesquels une mise à jour de l’environnement d’exécution peut avoir un impact négatif sur une fonction existante. Par exemple, les correctifs de sécurité peuvent exposer un problème sous-jacent à une fonction existante qui dépend du comportement précédent, non sécurisé. Les contrôles de gestion de l’environnement d’exécution Lambda permettent de réduire le risque d’impact sur vos charges de travail dans le cas rare d’une incompatibilité de version. Pour chaque version de fonction ($LATEST ou version publiée), vous pouvez choisir l’un des modes de mise à jour de l’environnement d’exécution suivants :

  • Auto (par défaut) – Mettre automatiquement à jour vers la version de l’environnement d’exécution la plus sécurisée et la plus sûre à l’aide de Déploiement des versions de l’environnement d’exécution en deux phases. Nous recommandons ce mode à la plupart des clients afin que vous puissiez toujours bénéficier des mises à jour de l’environnement d’exécution.

  • Mise à jour de fonction – Mise à jour vers la version d’exécution la plus récente et la plus sécurisée lorsque vous mettez à jour votre fonction. Lorsque vous mettez à jour votre fonction, Lambda met à jour l’exécution de votre fonction vers la version la plus récente et la plus sécurisée. Cette approche synchronise les mises à jour de l’environnement d’exécution avec les déploiements de fonctions, ce qui vous permet de contrôler le moment où Lambda applique les mises à jour de l’environnement d’exécution. Avec ce mode, vous pouvez détecter et atténuer rapidement les rares incompatibilités de mise à jour de l’environnement d’exécution. Lorsque vous utilisez ce mode, vous devez régulièrement mettre à jour vos fonctions pour maintenir leur environnement d’exécution à jour.

  • Manuel – Mise à jour manuelle de la version de votre exécution. Vous spécifiez une version de l’exécution dans la configuration de votre fonction. La fonction utilise cette version de l’environnement d’exécution indéfiniment. Dans les rares cas où une nouvelle version de l’environnement d’exécution est incompatible avec une fonction existante, vous pouvez utiliser ce mode pour ramener votre fonction à une version antérieure. Nous vous déconseillons d’utiliser le mode Manual (Manuel) pour tenter d’obtenir une cohérence de l’environnement d’exécution entre les déploiements. Pour de plus amples informations, veuillez consulter Annulation d'une version d'exécution Lambda.

La responsabilité de l’application des mises à jour de l’environnement d’exécution à vos fonctions varie en fonction du mode de mise à jour que vous choisissez. Pour de plus amples informations, veuillez consulter Comprendre le modèle de responsabilité partagée pour la gestion des environnements d'exécution Lambda.

Déploiement des versions de l’environnement d’exécution en deux phases

Lambda introduit de nouvelles gestions des versions d’exécution dans l’ordre suivant :

  1. Dans la première phase, Lambda applique la nouvelle version d’exécution chaque fois que vous créez ou mettez à jour une fonction. Une fonction est mise à jour lorsque vous appelez les UpdateFunctionConfigurationAPIopérations UpdateFunctionCodeor.

  2. Dans la deuxième phase, Lambda met à jour toute fonction qui utilise le mode de mise à jour Auto de l’environnement d’exécution et qui n’a pas encore été mise à jour vers la nouvelle version.

La durée totale du processus de déploiement varie en fonction de plusieurs facteurs, notamment la gravité de tout correctif de sécurité inclus dans la mise à jour de l’environnement d’exécution.

Si vous développez et déployez activement vos fonctions, vous obtiendrez très probablement de nouvelles versions de l’environnement d’exécution au cours de la première phase. Cela permet de synchroniser les mises à jour de l’environnement d’exécution avec les mises à jour des fonctions. Dans le cas rare où la dernière version d’exécution aurait un impact négatif sur votre application, cette approche vous permet de prendre rapidement des mesures correctives. Les fonctions qui ne sont pas en cours de développement bénéficient toujours des avantages opérationnels des mises à jour automatiques de l’environnement d’exécution au cours de la deuxième phase.

Cette approche n’affecte pas les fonctions définies en mode Function update (Mise à jour de fonction) ou en mode Manual (Manuel). Les fonctions utilisant le mode Function update (Mise à jour de fonction) reçoivent les dernières mises à jour de l’environnement d’exécution uniquement lorsque vous les créez ou les mettez à jour. Les fonctions utilisant le mode Manual (Manuel) ne reçoivent pas de mises à jour de l’environnement d’exécution.

Lambda publie les nouvelles versions de l’environnement d’exécution de manière progressive et continue à travers Régions AWS. Si vos fonctions sont configurées en mode Auto ou Function update (Mise à jour de fonction), il est possible que les fonctions déployées au même moment dans différentes régions, ou à différents moments dans la même région, reçoivent des versions de l’environnement d’exécution différentes. Les clients qui exigent une cohérence garantie des versions de l’environnement d’exécution dans leurs environnements doivent utiliser des images de conteneurs pour déployer leurs fonctions Lambda. Le mode Manuel est conçu comme une mesure d’atténuation temporaire pour permettre de restaurer la version d’exécution dans le rare cas où une version d’exécution est incompatible avec votre fonction.