Tiempos de ejecución compatibles con funciones duraderas
Las funciones duraderas están disponibles para los tiempos de ejecución de Node.js y Python. Puede crear funciones duraderas mediante tiempos de ejecución administrados en la consola de Lambda o implementarlas mediante imágenes de contenedor para una mayor flexibilidad de las versiones del tiempo de ejecución.
Tiempos de ejecución administrados de Lambda
Los siguientes tiempos de ejecución administrados admiten funciones duraderas cuando crea funciones en la consola de Lambda o utiliza la AWS CLI con el parámetro --durable-config '{"ExecutionTimeout": 10, "RetentionPeriodInDays":1}'. Para obtener información completa sobre los tiempos de ejecución de Lambda, consulte Tiempos de ejecución de Lambda.
| Idioma | Tiempo de ejecución |
|---|---|
| Node.js | nodejs22.x |
| Node.js | nodejs24.x |
| Python | python3.13 |
| Python | python3.14 |
nota
Los tiempos de ejecución de Lambda incluyen el SDK de ejecución duradera para pruebas y desarrollo. Sin embargo, le recomendamos incluir el SDK en su paquete de implementación para producción. Esto garantiza la coherencia de las versiones y evita posibles actualizaciones del tiempo de ejecución que podrían afectar el comportamiento de su función.
Node.js
Instale el SDK en su proyecto de Node.js:
npm install @aws/durable-execution-sdk-js
El SDK es compatible con JavaScript y TypeScript. Para los proyectos de TypeScript, el SDK incluye definiciones de tipos.
Python
Instale el SDK en el proyecto de Python:
pip install aws-durable-execution-sdk-python
El SDK para Python usa métodos sincrónicos y no requiere async/await.
Imágenes de contenedor
Puede utilizar funciones duraderas con imágenes de contenedor para admitir versiones del tiempo de ejecución adicionales o configuraciones del tiempo de ejecución personalizadas. Las imágenes de contenedor le permiten usar versiones de tiempo de ejecución que no están disponibles como tiempos de ejecución administrados o personalizar su entorno del tiempo de ejecución.
Cómo crear una función duradera con una imagen de contenedor
Cree un Dockerfile basado en una imagen base de Lambda.
Instale el SDK de ejecución duradera en su contenedor.
Cree y envíe la imagen del contenedor a Amazon Elastic Container Registry.
Cree la función de Lambda a partir de la imagen de contenedor con la ejecución duradera habilitada.
Ejemplo de contenedor de Python
Cree un Dockerfile para Python 3.11:
FROM public.ecr.aws/lambda/python:3.11 # Copy requirements file COPY requirements.txt ${LAMBDA_TASK_ROOT}/ # Install dependencies including durable SDK RUN pip install -r requirements.txt # Copy function code COPY lambda_function.py ${LAMBDA_TASK_ROOT}/ # Set the handler CMD [ "lambda_function.handler" ]
Cree un archivo de requirements.txt:
aws-durable-execution-sdk-python
Cree y envíe la imagen:
# Build the image docker build -t my-durable-function . # Tag for ECR docker tag my-durable-function:latest 123456789012.dkr.ecr.us-east-1.amazonaws.com/my-durable-function:latest # Push to ECR docker push 123456789012.dkr.ecr.us-east-1.amazonaws.com/my-durable-function:latest
Cree la función con la ejecución duradera habilitada:
aws lambda create-function \ --function-name myDurableFunction \ --package-type Image \ --code ImageUri=123456789012.dkr.ecr.us-east-1.amazonaws.com/my-durable-function:latest \ --role arn:aws:iam::123456789012:role/lambda-execution-role \ --durable-config '{"ExecutionTimeout": 10, "RetentionPeriodInDays":1}'
Para obtener más información acerca del uso de imágenes de contenedor con Lambda, consulte Creación de imágenes de contenedor en la Guía para desarrolladores de Lambda.
Consideraciones sobre el tiempo de ejecución
Administración de versiones del SDK: incluya el SDK de ejecución duradera en su paquete de implementación o imagen de contenedor. Esto garantiza que la función utilice una versión específica del SDK y no se vea afectada por las actualizaciones del tiempo de ejecución. Fije las versiones del SDK en el package.json o requirements.txt para controlar cuándo se actualiza.
Actualizaciones del tiempo de ejecución: AWS actualiza los tiempos de ejecución administrados para incluir parches de seguridad y correcciones de errores. Estas actualizaciones pueden incluir nuevas versiones del SDK. Para evitar comportamientos inesperados, incluya el SDK en su paquete de implementación y pruébelo minuciosamente antes de implementarlo en producción.
Tamaño de la imagen de contenedor: las imágenes de contenedor tienen un tamaño máximo sin comprimir de 10 GB. El SDK de ejecución duradera añade un tamaño mínimo a la imagen. Optimice su contenedor mediante compilaciones de varias etapas y la eliminación de dependencias innecesarias.
Rendimiento de arranque en frío: las imágenes de contenedor pueden tener tiempos de arranque en frío más prolongados que los tiempos de ejecución administrados. El SDK de ejecución duradera tiene un impacto mínimo en el rendimiento del arranque en frío. Utilice la concurrencia aprovisionada si la latencia del arranque en frío es fundamental para su aplicación.