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 State est activéActive
, SnapStart 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 Amazon Resource Name (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 \ --rolearn: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 State est activéActive
, SnapStart 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'action CreateFunctionAPI avec le 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 State est activéActive
, SnapStart 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.
- En attente
-
Lambda initialise votre code et prend un instantané de l’environnement d’exécution initialisé. Les invocations ou autres actions d’API qui agissent sur la version de fonction échoueront.
- Actif
-
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).
- Inactif
-
Cet
Inactive
état peut se produire lorsque Lambda régénère périodiquement des instantanés de fonctions pour appliquer des mises à jour logicielles. Dans ce cas, si votre fonction ne parvient pas à s’initialiser, elle peut entrer dans un étatInactive
.Pour les fonctions utilisant un environnement d'exécution Java, Lambda supprime les instantanés au bout de 14 jours sans appel. 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’étatActive
, puis invoquez-la à nouveau. - Échec
-
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.
Utilisation SnapStart avec AWS SDKs
Pour effectuer des appels au AWS SDK 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. Vous n’avez pas besoin de fournir des informations d’identification pour le kit SDK directement dans le code. 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 Lambda utilise automatiquement les informations d'identification du conteneur (AWS_CONTAINER_CREDENTIALS_FULL_URI
etAWS_CONTAINER_AUTHORIZATION_TOKEN
) au lieu des variables d'environnement de la clé 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.
-
Exécutions Java uniquement : 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 (RGPD).