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.
Rubriques
Activation SnapStart (console)
SnapStart Pour activer une fonction
Ouvrez la page Functions
(Fonctions) de la console Lambda. -
Choisissez le nom d’une fonction.
-
Choisissez Configuration, puis General configuration (Configuration générale).
-
Dans le volet General configuration (Configuration générale), choisissez Edit (Modifier).
-
Sur la page Modifier les paramètres de base, pour SnapStart, choisissez Versions publiées.
-
Choisissez Save (Enregistrer).
-
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.
Activation SnapStart (AWS CLI)
SnapStart Pour activer une fonction existante
-
Mettez à jour la configuration de la fonction en exécutant la update-function-configuration
commande avec l'--snap-startoption. aws lambda update-function-configuration \ --function-name my-function \ --snap-start ApplyOn=PublishedVersions
-
Publiez une version de la fonction avec la commande publish-version
. aws lambda publish-version \ --function-name my-function
-
Vérifiez qu'elle SnapStart est activée pour la version de la fonction en exécutant la get-function-configuration
commande 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"
, -
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.jsonL'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
-
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 -
Créez une version avec la commande publish-version
. aws lambda publish-version \ --function-name my-function
-
Vérifiez qu'elle SnapStart est activée pour la version de la fonction en exécutant la get-function-configuration
commande 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"
, -
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.jsonL'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
-
Effectuez l’une des actions suivantes :
-
Créez une nouvelle fonction SnapStart activée en utilisant l'CreateFunctionAPIaction associée au SnapStartparamètre.
-
SnapStart Activez une fonction existante en utilisant l'UpdateFunctionConfigurationaction associée au SnapStartparamètre.
-
-
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.
-
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"
, -
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 devientInactive
, Lambda supprime l’instantané. Si vous invoquez la version de la fonction après 14 jours, Lambda renvoie une réponseSnapStartNotReadyException
et commence à initialiser un nouvel instantané. Attendez que la fonction version atteigne l’étatActive
, 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 unInactive
é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_URI
etAWS_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