¿Cómo puedo evitar la duplicación de las invocaciones de la función Lambda?

Última actualización: 18/11/2021

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.

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.