Activation et gestion de Lambda SnapStart - 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.

Activation et gestion de Lambda SnapStart

Pour l'utiliser SnapStart, activez-la SnapStart sur une fonction Lambda nouvelle ou existante. Ensuite, publiez et invoquez une version de la fonction.

Activation SnapStart (console)

SnapStart Pour activer une fonction
  1. Ouvrez la page Functions (Fonctions) de la console Lambda.

  2. Choisissez le nom d’une fonction.

  3. Choisissez Configuration, puis General configuration (Configuration générale).

  4. Dans le volet General configuration (Configuration générale), choisissez Edit (Modifier).

  5. Sur la page Modifier les paramètres de base, pour SnapStart, choisissez Versions publiées.

  6. Choisissez Save (Enregistrer).

  7. Publiez une version de la fonction. Lambda initialise votre code, crée un instantané de l’environnement d’exécution initialisé, puis met en cache l’instantané pour un accès à faible latence.

  8. Invoquez la version de la fonction..

Activation SnapStart (AWS CLI)

SnapStart Pour activer une fonction existante
  1. Mettez à jour la configuration de la fonction en exécutant la update-function-configurationcommande avec l'--snap-startoption.

    aws lambda update-function-configuration \ --function-name my-function \ --snap-start ApplyOn=PublishedVersions
  2. Publiez une version de la fonction avec la commande publish-version.

    aws lambda publish-version \ --function-name my-function
  3. Vérifiez qu'elle SnapStart est activée pour la version de la fonction en exécutant la get-function-configurationcommande et en spécifiant le numéro de version. L’exemple suivant spécifie la version 1.

    aws lambda get-function-configuration \ --function-name my-function:1

    Si la réponse indique que OptimizationStatusc'est le cas On et que l'état l' SnapStart estActive, alors il est activé et un instantané est disponible pour la version de fonction spécifiée.

    "SnapStart": { "ApplyOn": "PublishedVersions", "OptimizationStatus": "On" }, "State": "Active",
  4. Invoquez la version de la fonction en exécutant la commande invoke et en spécifiant la version. L’exemple suivant invoque la version 1.

    aws lambda invoke \ --cli-binary-format raw-in-base64-out \ --function-name my-function:1 \ --payload '{ "name": "Bob" }' \ response.json

    L'cli-binary-formatoption est obligatoire si vous utilisez AWS CLI la version 2. Pour faire de ce paramètre le paramètre par défaut, exécutez aws configure set cli-binary-format raw-in-base64-out. Pour plus d’informations, consultez les options de ligne de commande globales AWS CLI prises en charge dans le Guide de l’utilisateur AWS Command Line Interface version 2.

À activer SnapStart lorsque vous créez une nouvelle fonction
  1. Créez une fonction en exécutant la commande create-function avec l’option --snap-start. Pour--role, spécifiez le nom de ressource Amazon (ARN) de votre rôle d'exécution.

    aws lambda create-function \ --function-name my-function \ --runtime "java21" \ --zip-file fileb://my-function.zip \ --handler my-function.handler \ --role arn:aws:iam::111122223333:role/lambda-ex \ --snap-start ApplyOn=PublishedVersions
  2. Créez une version avec la commande publish-version.

    aws lambda publish-version \ --function-name my-function
  3. Vérifiez qu'elle SnapStart est activée pour la version de la fonction en exécutant la get-function-configurationcommande et en spécifiant le numéro de version. L’exemple suivant spécifie la version 1.

    aws lambda get-function-configuration \ --function-name my-function:1

    Si la réponse indique que OptimizationStatusc'est le cas On et que l'état l' SnapStart estActive, alors il est activé et un instantané est disponible pour la version de fonction spécifiée.

    "SnapStart": { "ApplyOn": "PublishedVersions", "OptimizationStatus": "On" }, "State": "Active",
  4. Invoquez la version de la fonction en exécutant la commande invoke et en spécifiant la version. L’exemple suivant invoque la version 1.

    aws lambda invoke \ --cli-binary-format raw-in-base64-out \ --function-name my-function:1 \ --payload '{ "name": "Bob" }' \ response.json

    L'cli-binary-formatoption est obligatoire si vous utilisez AWS CLI la version 2. Pour faire de ce paramètre le paramètre par défaut, exécutez aws configure set cli-binary-format raw-in-base64-out. Pour plus d’informations, consultez les options de ligne de commande globales AWS CLI prises en charge dans le Guide de l’utilisateur AWS Command Line Interface version 2.

Activation SnapStart (API)

Pour activer SnapStart
  1. Effectuez l’une des actions suivantes :

  2. Publiez une version de fonction avec l'PublishVersionaction. Lambda initialise votre code, crée un instantané de l’environnement d’exécution initialisé, puis met en cache l’instantané pour un accès à faible latence.

  3. Vérifiez qu'elle SnapStart est activée pour la version de la fonction en utilisant l'GetFunctionConfigurationaction. Spécifiez un numéro de version pour confirmer qu' SnapStart il est activé pour cette version. Si la réponse indique que OptimizationStatusc'est le cas On et que l'état l' SnapStart estActive, alors il est activé et un instantané est disponible pour la version de fonction spécifiée.

    "SnapStart": { "ApplyOn": "PublishedVersions", "OptimizationStatus": "On" }, "State": "Active",
  4. Invoquez la version de la fonction avec l’action Invoke.

Lambda SnapStart et états des fonctions

Les états de fonction suivants peuvent se produire lorsque vous utilisez SnapStart. Ils peuvent également se produire lorsque Lambda recycle périodiquement l'environnement d'exécution et réexécute le code d'initialisation d'une fonction configurée avec. SnapStart

  • Pending – Lambda initialise votre code et prend un instantané de l’environnement d’exécution initialisé. Toute invocation ou autre API action agissant sur la version de la fonction échouera.

  • Active – La création de l’instantané est terminée et vous pouvez invoquer la fonction. Pour l'utiliser SnapStart, vous devez invoquer la version publiée de la fonction, et non la version non publiée ($LATEST).

  • Inactive – La version de la fonction n’a pas été invoquée depuis 14 jours. Lorsque la version de la fonction devient Inactive, Lambda supprime l’instantané. Si vous invoquez la version de la fonction après 14 jours, Lambda renvoie une réponse SnapStartNotReadyException et commence à initialiser un nouvel instantané. Attendez que la fonction version atteigne l’état Active, puis invoquez-la à nouveau. L'Inactiveétat peut également se produire lorsque Lambda effectue un recyclage périodique de l'environnement d'exécution. Dans ce cas, si votre fonction ne parvient pas à s'initialiser, elle peut entrer dans un Inactive état.

  • Failed – Lambda a rencontré une erreur lors de l’exécution du code d’initialisation ou de la création de l’instantané.

Mise à jour d’un instantané

Lambda crée un instantané pour chaque version de fonction publiée. Pour mettre à jour un instantané, publiez une nouvelle version de la fonction. Lambda met automatiquement à jour vos instantanés avec les derniers correctifs d’environnement d’exécution et de sécurité.

En utilisant SnapStart avec AWS SDK for Java

Pour effectuer des AWS SDK appels depuis votre fonction, Lambda génère un ensemble éphémère d'informations d'identification en assumant le rôle d'exécution de votre fonction. Ces informations d’identification sont disponibles en tant que variables d’environnement lors de l’invocation de votre fonction. Il n'est pas nécessaire de fournir des informations d'identification pour le code SDK directement saisi. Par défaut, la chaîne de fournisseurs d’informations d’identification vérifie séquentiellement chaque endroit où vous pouvez définir des informations d’identification et sélectionne le premier disponible, généralement les variables d’environnement (AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY et AWS_SESSION_TOKEN).

Note

Lorsqu'il SnapStart est activé, le moteur d'exécution Java utilise automatiquement les informations d'identification du conteneur (AWS_CONTAINER_CREDENTIALS_FULL_URIetAWS_CONTAINER_AUTHORIZATION_TOKEN) au lieu des variables d'environnement clés d'accès. Cela évite que les informations d’identification n’expirent avant la restauration de la fonction.

Utilisation SnapStart avec AWS CloudFormationAWS SAM, et AWS CDK

  • AWS CloudFormation: Déclarez l'SnapStartentité dans votre modèle.

  • AWS Serverless Application Model (AWS SAM) : Déclarez la SnapStartpropriété dans votre modèle.

  • AWS Cloud Development Kit (AWS CDK): Utilisez le SnapStartPropertytype.

Suppression d’instantanés

Lambda supprime les instantanés lorsque :

  • Vous supprimez la fonction ou la version de la fonction.

  • Vous n’invoquez pas la version de la fonction pendant 14 jours. Après 14 jours sans invocation, la version de fonction passe à l’état Inactif. Si vous invoquez la version de la fonction après 14 jours, Lambda renvoie une réponse SnapStartNotReadyException et commence à initialiser un nouvel instantané. Attendez que la version de la fonction atteigne l’état Actif, puis invoquez-la à nouveau.

Lambda supprime toutes les ressources associées aux instantanés supprimés conformément au règlement général sur la protection des données (). GDPR