Versions de fonctions Lambda - AWS Lambda

Versions de fonctions 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 nouvelle version de votre fonction chaque fois que vous la publiez. La nouvelle version est une copie de la version non publiée de la fonction.

Note

Lambda ne crée pas de nouvelle version si le code de la version non publiée est identique à celui de la version publiée précédente. Vous devez déployer les modifications du code dans $LATEST avant de pouvoir créer une nouvelle version.

Une version de fonction inclut les informations suivantes :

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

  • Runtime 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.

Création de versions de 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, Lambda verrouille le code et la plupart des paramètres afin de maintenir 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 options de fonction Lambda.

Vous pouvez créer une version de fonction à l'aide de la console Lambda.

Pour créer une version de fonction

  1. Ouvrez la page Functions (Fonctions) de la console Lambda.

  2. Sélectionnez une fonction, puis choisissez Versions.

  3. Sur la page de configuration des versions, sélectionnez Publish new version (Publier une nouvelle version).

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

  5. Choisissez Publish.

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

Vous devriez voir la sortie suivante:

{ "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 appelez une fonction à l'aide d'un ARN non qualifié, Lambda invoque implicitement $LATEST.

Lambda ne publie une nouvelle version de fonction que 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 fonction Lambda.