

# Estados de función de Lambda
<a name="functions-states"></a>

Lambda incluye un campo de [Estado](https://docs.aws.amazon.com/lambda/latest/api/API_GetFunctionConfiguration.html#lambda-GetFunctionConfiguration-response-State) 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.

**nota**  
Las definiciones de estado de las funciones difieren ligeramente para las funciones de [SnapStart](snapstart.md). Para obtener más información, consulte [Lambda SnapStart y estados de la función](snapstart-activate.md#snapstart-function-states).

En muchos casos, una tabla de DynamoDB es una forma ideal de retener el estado entre las invocaciones, ya que proporciona acceso a los datos de baja latencia y se puede escalar con el servicio Lambda. También puede almacenar datos en [Amazon EFS para Lambda](https://aws.amazon.com/blogs/compute/using-amazon-efs-for-aws-lambda-in-your-serverless-applications/) si utiliza este servicio, lo que proporciona un acceso de baja latencia al almacenamiento del sistema de archivos.

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. Cuando se produce un error en la creación de una función, Lambda establece el estado de la función como fallido y usted debe eliminarla y volver a crearla.
+ `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 vuelve al estado inactivo. Es posible que tenga que resolver cualquier error y volver a implementar la función para restaurarla al estado activo.

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](https://docs.aws.amazon.com/lambda/latest/api/API_GetFunction.html) o configure un esperador mediante el [AWS SDK for Java 2.0](https://github.com/aws/aws-sdk-java-v2).

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

Debería ver los siguientes datos de salida:

```
[
 "Active",
 "Successful" 
]
```

Se produce un error en las siguientes operaciones mientras la creación de la función está pendiente:
+ [Invoke](https://docs.aws.amazon.com/lambda/latest/api/API_Invoke.html)
+ [UpdateFunctionCode](https://docs.aws.amazon.com/lambda/latest/api/API_UpdateFunctionCode.html)
+ [UpdateFunctionConfiguration](https://docs.aws.amazon.com/lambda/latest/api/API_UpdateFunctionConfiguration.html)
+ [PublishVersion](https://docs.aws.amazon.com/lambda/latest/api/API_PublishVersion.html)

## Estados de función durante las actualizaciones
<a name="functions-states-updating"></a>

Lambda tiene dos operaciones para actualizar las funciones:
+ [UpdateFunctionCode:](https://docs.aws.amazon.com/lambda/latest/api/API_UpdateFunctionCode.html) actualiza el paquete de implementación de la función
+ [UpdateFunctionConfiguration:](https://docs.aws.amazon.com/lambda/latest/api/API_UpdateFunctionConfiguration.html) actualiza la configuración de la función

Lambda usa el atributo [LastUpdateStatus](https://docs.aws.amazon.com/lambda/latest/api/API_FunctionConfiguration.html#lambda-Type-FunctionConfiguration-LastUpdateStatus) para realizar un seguimiento del progreso de estas operaciones de actualización. Mientras hay una actualización en curso (cuándo `"LastUpdateStatus": "InProgress"`):
+ El [estado](https://docs.aws.amazon.com/lambda/latest/api/API_GetFunctionConfiguration.html#lambda-GetFunctionConfiguration-response-State) de la función sigue siendo `Active`.
+ Las invocaciones siguen utilizando el código y la configuración anteriores de la función hasta que se complete la actualización.
+ Las siguientes operaciones fallan:
  + [UpdateFunctionCode](https://docs.aws.amazon.com/lambda/latest/api/API_UpdateFunctionCode.html)
  + [UpdateFunctionConfiguration](https://docs.aws.amazon.com/lambda/latest/api/API_UpdateFunctionConfiguration.html)
  + [PublishVersion](https://docs.aws.amazon.com/lambda/latest/api/API_PublishVersion.html)
  + [TagResource](https://docs.aws.amazon.com/lambda/latest/api/API_TagResource.html)

Cuando se produce un error en una actualización (cuando `"LastUpdateStatus": "Failed"`):
+ El [estado](https://docs.aws.amazon.com/lambda/latest/api/API_GetFunctionConfiguration.html#lambda-GetFunctionConfiguration-response-State) de la función sigue siendo `Active`.
+ Las invocaciones siguen utilizando el código y la configuración anteriores de la función.

**Example Respuesta GetFunctionConfiguration**  
El siguiente ejemplo es el resultado de la solicitud [GetFunctionConfiguration](https://docs.aws.amazon.com/lambda/latest/api/API_GetFunctionConfiguration.html) en una función que se está actualizando.  

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