Hace 4 días vi un anuncio que me parecio muy interesante es que ya se incremento 6x el timeout de las funciones Lambda de AWS con origen de eventos (ESM) en instancias administradas (LMI), lo cual abre muchas posibilidades a considerar.
Historia
¿Por qué Lambda necesitaba 90 minutos?
Para comprender por qué esta actualización representa un punto de inflexión, analicemos cómo evolucionaron los límites de ejecución de Lambda junto con las cargas de trabajo en la nube:
- 2014: AWS Lambda se lanzó con un límite de tiempo de espera de 5 minutos.
- 2018: El tiempo de espera se amplió a 15 minutos, dando inicio a la era dorada de los microservicios basados en eventos.
- 2025-2026: Las cargas de trabajo se orientaron drásticamente hacia el procesamiento de datos, la transcodificación de medios a gran escala y el razonamiento de IA generativa. El límite de 15 minutos se convirtió en un obstáculo persistente.
Cinco patrones de carga de trabajo principales superaron el límite de 15 minutos:
- Procesamiento multimedia: La transcripción de voz a texto y la transcodificación de vídeo de alta definición requieren habitualmente entre 20 y 60 minutos de procesamiento ininterrumpido en CPU/GPU.
- Cálculos financieros: Simulaciones de riesgo Monte Carlo complejas, modelado de carteras y cálculos de rendimiento de bonos que exigen una gran cantidad de memoria y procesamiento continuo.
- ETL y canalizaciones de datos: Trabajos por lotes que ingieren archivos de varios gigabytes o extraen datos de API de socios externos lentos durante las horas pico.
- Inferencia y razonamiento de IA: Evaluaciones por lotes, cadenas de razonamiento LLM de varios pasos y tareas de generación de datos sintéticos que se ajustan perfectamente a las asignaciones de CPU y memoria de Lambda, pero superan el límite de tiempo.
- Extracción de datos web e ingesta de datos de proveedores: Rastreadores que extraen datos de catálogo no estructurados de puntos finales de terceros con ve locidad limitada o lentos.
- La letra pequeña: qué se admite (y qué no) El tiempo de espera de 90 minutos no es un interruptor universal para todas las funciones Lambda. Opera bajo límites arquitectónicos específicos:
Invocaciones admitidas
- Compute Engine: solo instancias administradas (LMI) de Lambda. El Lambda On-Demand estándar sigue limitado al límite tradicional de 15 minutos.
- Tipo de invocación: asincrónica (InvocationType='Event') y mapeo de origen de eventos (ESM).
- Funciones duraderas: compatibles con pasos de ejecución individuales.
- Precios: Sin recargo. Se aplican tasas de cálculo de instancias administradas Lambda estándar.
Límites y exclusiones cruciales
- Las invocaciones sincrónicas permanecen 15 minutos: si un cliente invoca su función sincrónicamente (RequestResponse), como a través de Amazon API Gateway, un balanceador de carga de aplicaciones o llamadas directas al SDK, Lambda aplica estrictamente el máximo de 15 minutos, incluso si el tiempo de espera de su función está configurado en 5400 segundos.
- La fase de inicio no ha cambiado: el contenedor de inicio en frío y la inicialización del tiempo de ejecución (Init) permanecen limitados a 15 minutos.
- Cobertura del servicio ESM: la ventana de 90 minutos se aplica a Amazon SQS, Amazon Kinesis, Amazon DynamoDB Streams, Amazon MSK y Apache Kafka autoadministrado. Sin embargo, las asignaciones de fuentes de eventos de Amazon MQ y Amazon DocumentDB siguen limitadas a 15 minutos.
Configuración
Consola AWS
To modify the timeout for a function
Abre la página Funciones de la consola Lambda.
Selecciona una función.
Selecciona la pestaña Configuración y luego Configuración general.
Abre la pestaña Configuración en la consola Lambda.
En Configuración general, selecciona Editar.
En Tiempo de espera, establece un valor entre 1 y 5400 segundos (15 minutos).
Selecciona Guardar.
CLI AWS
Para configurar el timeout lo puedes realizar con el comando (recuerda cambiar el nombre de la función y la región):
aws lambda update-function-configuration \
--function-name my-data-processor \
--timeout 5400 \
--region us-east-1
AWS CloudFormation o AWS SAM
Si utilizas AWS CloudFormation o AWS Serverless Application Model (AWS SAM) lo puedes configurar de la siguiente forma:
MyFunction:
Type: AWS::Serverless::Function
Properties:
FunctionName: my-data-processor
Runtime: python3.12
Handler: app.handler
Timeout: 5400
MemorySize: 10240
Resumen
Para las funciones Lambda invocadas de forma asíncrona, el tiempo de espera se puede configurar hasta un máximo de 90 minutos. Esta verificación confirmó que la función se ejecutó durante 16 minutos, superando el límite de 15 minutos.
Al ejecutar funciones Lambda durante periodos prolongados, recomendamos evaluar cuidadosamente la solución, teniendo en cuenta que el modelo de precios difiere del de Lambda estándar.
Referencias:
Post oficial: https://aws.amazon.com/es/blogs/compute/announcing-90-minute-function-timeout-on-aws-lambda-managed-instances/


Top comments (0)