¿Cómo puedo evitar la duplicación de las invocaciones de la función Lambda?
Mi función de AWS Lambda sigue recibiendo más de una solicitud de invocación para un solo evento. ¿Cómo puedo evitar que mi función Lambda invoque varias veces desde el mismo evento?
Descripción corta
Para ayudar a evitar la duplicación de las invocaciones de la función Lambda, haga lo siguiente en función del tipo de invocación que esté utilizando.
Nota: En el caso de las invocaciones síncronas, los clientes y los servicios de AWS que invocan una función Lambda son responsables de llevar a cabo los reintentos. En el caso de las invocaciones asincrónicas, Lambda vuelve a llevar a cabo los reintentos automáticamente en caso de error, con retrasos entre los reintentos.
Resolución
En caso de invocaciones asincrónicas
Revise Amazon CloudWatch Logs de la función Lambda para verificar lo siguiente:
- Si las invocaciones duplicadas tienen el mismo ID de solicitud o no
- Si las invocaciones duplicadas mostraron errores o se agotó el tiempo de espera
A continuación, haga una de las siguientes acciones en función del caso de uso:
En caso de invocaciones duplicadas que mostraron errores o agotaron el tiempo de espera y que tienen el mismo ID de solicitud
Nota: Las invocaciones duplicadas que muestran errores o agotaron el tiempo de espera y que tienen el mismo ID de solicitud indican que el servicio de Lambda reintentó la función.
Configure la gestión de errores para la invocación asincrónica con el objetivo de reducir la cantidad de veces que la función Lambda reintenta las solicitudes de invocación asíncronas con errores.
Para obtener más información, consulte Control de errores y reintentos automáticos en AWS Lambda.
En caso de invocaciones duplicadas que no mostraron errores ni agotaron el tiempo de espera
Nota: Las invocaciones duplicadas que no muestran errores ni agotaron el tiempo de espera indican reintentos del cliente.
- Asegúrese de que el código de la función Lambda sea idempotente y capaz de gestionar mensajes varias veces.
- Asegúrese de que la función Lambda tenga establecido un límite de simultaneidad lo suficientemente alto como para gestionar el número de solicitudes de invocación que recibe.
- Identifique y resuelva cualquier error que muestre la función Lambda.
Nota: Para solucionar errores de invocación de la función, consulte How do I troubleshoot Lambda function failures?
En caso de invocaciones síncronas
Nota: El comportamiento de reintento de invocación síncrona varía entre los servicios de AWS, en función del mapeo de fuentes de eventos de cada servicio. Para obtener más información, consulte Invocación basada en eventos.
- Asegúrese de que el código de la función Lambda sea idempotente y capaz de gestionar mensajes varias veces.
- Identifique y resuelva cualquier error que muestre la función Lambda.
Nota: Para solucionar errores de invocación de la función, consulte How do I troubleshoot Lambda function failures?
Información relacionada
Ver eventos con el historial de eventos de CloudTrail
Prácticas recomendadas para trabajar con funciones de AWS Lambda
Contenido relevante
- OFICIAL DE AWSActualizada hace 3 años
- OFICIAL DE AWSActualizada hace un año
- OFICIAL DE AWSActualizada hace un año
- OFICIAL DE AWSActualizada hace 3 años