Estados de función de Lambda - AWS Lambda

Estados de función de Lambda

Lambda incluye un campo de estado en la configuración de la función para indicar cuando su función está lista. State proporciona información sobre el estado actual de la función e incluso si se puede invocar de forma correcta. Los estados de función no cambian el comportamiento de las invocaciones ni la forma en que la suya ejecuta el código. Los estados de función incluyen:

  • Pending: después de que Lambda cree la función, establece el estado en pendiente. Mientras está en estado pendiente, Lambda intenta crear o configurar recursos para la función, como recursos de VPC o EFS. Lambda no invoca una función mientras está en estado pendiente. Las invocaciones u otras acciones de API que actúen en la función producirán errores.

  • Active: la función pasa al estado activo después de que Lambda complete la configuración y el aprovisionamiento de recursos. Las funciones solo se pueden invocar correctamente mientras están activas.

  • Failed: indica que la configuración o el aprovisionamiento de recursos ha detectado un error.

  • Inactive: una función se vuelve inactiva cuando ha estado inactiva el tiempo suficiente para que Lambda reclame los recursos externos que se configuraron para ella. Cuando intenta invocar una función que está inactiva, la invocación produce un error y Lambda establece la función en estado pendiente hasta que se vuelvan a crear sus recursos. Si Lambda no vuelve a crear los recursos, la función se establece en estado inactivo.

Si utiliza flujos de trabajo de automatización basados ​​en SDK o llama directamente a las API de servicio de Lambda, asegúrese de verificar que la función esté activa antes de la invocación. Para hacerlo, utilice la acción de la API de Lambda GetFunction o configure un esperador mediante el AWS SDK for Java 2.0.

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

Debería ver los siguientes datos de salida:

[ "Active", "Successful" ]

Las funciones tienen otros dos atributos: StateReason y StateReasonCode. Estos proporcionan información y contexto sobre el estado de la función cuando no está activa para solucionar problemas.

Se produce un error en las siguientes operaciones mientras la creación de la función está pendiente:

Estados de función durante la actualización

Lambda proporciona contexto adicional para las funciones que se están actualizando con el atributo LastUpdateStatus, que pueden tener los siguientes estados:

  • InProgress: se está produciendo una actualización en una función existente. Mientras se está actualizando una función, las invocaciones van al código y la configuración anteriores de la función.

  • Successful: se ha terminado la actualización. Una vez que Lambda finaliza la actualización, esta queda configurada hasta una nueva actualización.

  • Failed: se ha producido un error al actualizar la función. Lambda anula la actualización y el código y la configuración anteriores de la función permanecen disponibles.

A continuación, se muestra el resultado del comando get-function-configuration en una función que se está actualizando.

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

FunctionConfiguration tiene otros dos atributos, LastUpdateStatusReason y LastUpdateStatusReasonCode, para ayudar a solucionar problemas de actualización.

Se produce un error en las siguientes operaciones mientras se está realizando una actualización asincrónica: