États de la fonction Lambda - AWS Lambda

États de la fonction Lambda

Lambda inclut un champ État dans la configuration de la fonction pour toutes les fonctions, afin d’indiquer quand la fonction est prête à être invoquée. State fournit des informations sur l’état actuel de la fonction, y compris si vous pouvez invoquer la fonction avec succès. Les états de la fonction ne modifient pas le comportement des appels de la fonction ou la façon dont votre fonction exécute le code.

Note

Les définitions d’état de fonction diffèrent légèrement pour les fonctions SnapStart. Pour de plus amples informations, consultez Lambda SnapStart et états de fonction.

Dans de nombreux cas, une table DynamoDB constitue un moyen idéal de conservation d’état entre invocations, car elle fournit un accès aux données à faible latence et peut se mettre à l’échelle avec le service Lambda. Vous pouvez également stocker des données dans Amazon EFS pour Lambda si vous utilisez ce service, ce qui permet un accès à faible latence au stockage du système de fichiers.

Les états de la fonction incluent :

  • Pending : une fois que Lambda crée la fonction, il définit l’état comme « en attente ». Lorsqu’elle est en attente, Lambda tente de créer ou de configurer des ressources pour la fonction, telles que des ressources VPC ou EFS. Lambda n’appelle pas de fonction pendant que l’état est en attente. Les appels ou autres actions d’API qui agissent sur la fonction échoueront.

  • Active – La fonction passera à l’état actif lorsque Lambda aura terminé la configuration et l’approvisionnement des ressources. Les fonctions peuvent uniquement être appelées avec succès lorsqu’elles sont actives.

  • Failed : indique que la configuration ou l’approvisionnement des ressources ont rencontré une erreur.

  • Inactive : une fonction devient inactive lorsqu’elle a été inactive suffisamment longtemps afin que Lambda puisse récupérer les ressources externes qui ont été configurées pour elle. Lorsque vous essayez d’appeler une fonction qui est inactive, l’invocation échoue et Lambda définit la fonction à l’état « en attente » jusqu’à ce que les ressources de la fonction soient recréées. Si Lambda ne parvient pas à recréer les ressources, la fonction retourne à l’état inactif. Il se peut que vous deviez résoudre les erreurs et redéployer votre fonction pour la rétablir à l’état actif.

Si vous utilisez des flux de travail d’automatisation basés sur un kit SDK ou si vous appelez directement les API de service Lambda, vérifiez l’état d’une fonction avant l’invocation pour vous assurer qu’elle est active. Pour ce faire, utilisez l’action d’API Lambda GetFunction ou configurez un serveur à l’aide du SDK pour Java2.0 AWS.

aws lambda get-function --function-name my-function --query 'Configuration.[State, LastUpdateStatus]'

Vous devriez voir la sortie suivante :

[
 "Active",
 "Successful" 
]

Les opérations suivantes échouent lorsque la création de fonction est en attente :

États de fonction lors des mises à jour

Lambda effectue deux opérations pour la mise à jour des fonctions :

Lambda utilise l’attribut LastUpdateStatus pour suivre la progression de ces opérations de mise à jour. Quand une mise à jour est en cours ("LastUpdateStatus": "InProgress") :

Exemple Réponse de GetFunctionConfiguration

Vous trouverez dans l’exemple ci-dessous le résultat de la requête GetFunctionConfiguration sur une fonction faisant l’objet d’une mise à jour.

{ "FunctionName": "my-function", "FunctionArn": "arn:aws:lambda:us-east-1:123456789012:function:my-function", "Runtime": "nodejs22.x", "VpcConfig": { "SubnetIds": [ "subnet-071f712345678e7c8", "subnet-07fd123456788a036", "subnet-0804f77612345cacf" ], "SecurityGroupIds": [ "sg-085912345678492fb" ], "VpcId": "vpc-08e1234569e011e83" }, "State": "Active", "LastUpdateStatus": "InProgress", ... }