Versions de fonction Lambda - AWS Lambda

Versions de fonction Lambda

Vous pouvez utiliser des versions pour gérer le déploiement de vos fonctions. Par exemple, vous pouvez publier une nouvelle version d'une fonction à des fins de test bêta sans affecter les utilisateurs de la version de production stable. Lambda crée une version de votre fonction chaque fois que vous publiez la fonction. La nouvelle version est une copie de la version non publiée de la fonction.

Une version de fonction inclut les informations suivantes :

  • Le code de la fonction et toutes les dépendances associées.

  • L'environnement d'exécution Lambda qui appelle la fonction.

  • Tous les paramètres de la fonction, y compris les variables d'environnement.

  • Un nom Amazon Resource Name (ARN) unique pour identifier cette version spécifique de la fonction.

Vous pouvez modifier le code et les paramètres de la fonction uniquement sur la version non publiée d'une fonction. Lorsque vous publiez une version, le code et la plupart des paramètres sont verrouillés afin de préserver une expérience cohérente pour les utilisateurs de cette version. Pour de plus amples informations sur la configuration des paramètres de la fonction, veuillez consulter Configuration des fonctions dans la console AWS Lambda.

Pour créer une nouvelle version d'une fonction

  1. Ouvrez la page des fonctions sur la console Lambda.

  2. Choisissez le nom de la fonction que vous souhaitez publier.

  3. Sur la page de configuration de la fonction, choisissez Actions, Publish new version (Publier une nouvelle version).

  4. (Facultatif) Entrez une description de la version.

  5. Choisissez Publish.

Après avoir publié la première version d'une fonction, la console Lambda affiche une liste déroulante des versions disponibles. Le panneau Designer (Concepteur) affiche un qualificateur de version à la fin du nom de la fonction.

Pour afficher les versions actuelles d'une fonction, sur la page de configuration de la fonction, choisissez Qualifiers (Qualificateurs), puis cliquez sur l'onglet Versions pour afficher la liste des versions de la fonction. Si vous n'avez pas publié de nouvelle version de la fonction, la liste affiche uniquement la version $LATEST.

Gestion des versions avec l'API Lambda

Pour publier une version d'une fonction, utilisez l'opération d'API PublishVersion.

L'exemple suivant publie une nouvelle version d’une fonction. La réponse renvoie les informations de configuration relatives à la nouvelle version, y compris le numéro de version et l'ARN de la fonction avec le suffixe de version.

$ aws lambda publish-version --function-name my-function { "FunctionName": "my-function", "FunctionArn": "arn:aws:lambda:us-east-2:123456789012:function:my-function:1", "Version": "1", "Role": "arn:aws:iam::123456789012:role/lambda-role", "Handler": "function.handler", "Runtime": "nodejs12.x", ... }

Utilisation des versions

Vous pouvez référencer votre fonction Lambda à l'aide d'un ARN qualifié ou d'un ARN non qualifié.

  • ARN qualifié – ARN de la fonction avec suffixe de version. L'exemple suivant fait référence à la version 42 de la fonction helloworld.

    arn:aws:lambda:aws-region:acct-id:function:helloworld:42
  • ARN non qualifié – ARN de la fonction sans suffixe de version.

    arn:aws:lambda:aws-region:acct-id:function:helloworld

Vous pouvez utiliser un ARN qualifié ou non qualifié dans toutes les opérations d'API pertinentes. Cependant, vous ne pouvez pas utiliser un ARN non qualifié pour créer un alias.

Si vous décidez de ne pas publier de versions de fonction, vous pouvez appeler la fonction à l'aide de l'ARN qualifié ou non qualifié dans votre mappage source d'événement. Lorsque vous invoquez une fonction à l'aide d'un ARN non qualifié, Lambda invoque implicitement $LATEST.

Lambda publie une nouvelle version de fonction seulement si le code n'a jamais été publié ou si le code a changé par rapport à la version publiée la plus récente. S'il n'y a pas de changement, la version de fonction publiée la plus récente reste active.

L'ARN qualifié pour chaque version de fonction Lambda est unique. Après avoir publié une version, vous ne pouvez pas modifier l'ARN ou le code de fonction.

Octroi d'autorisations

Vous pouvez utiliser une stratégie basée sur les ressources ou une stratégie basée sur l'identité pour accorder l'accès à votre fonction. La portée de l'autorisation est dépendante du fait que vous appliquiez la stratégie à une fonction ou à une version d'une fonction. Pour de plus amples informations sur les noms de ressource de fonction dans les stratégies, veuillez consulter Ressources et conditions pour les actions Lambda.

Vous pouvez simplifier la gestion des sources d'événement et des stratégies AWS Identity and Access Management (IAM) en utilisant des alias de fonction. Pour de plus amples informations, veuillez consulter Alias de fonctions Lambda.