Skip to content

EventBridge Scheduler ejecuta Lambda múltiples veces por minuto sin tener ventana flexible activa

0

Hola equipo de AWS Support,

Estoy experimentando un comportamiento inesperado con EventBridge Scheduler. He configurado una regla para ejecutar una Lambda exactamente cada 5 minutos. Sin embargo, la función Lambda se ejecuta más de una vez por minuto, a pesar de que la opción de “intervalo de tiempo flexible” está desactivada.

Detalles técnicos: ARN del Scheduler: arn:aws:scheduler:us-east-1:773714577077:schedule/default/task_ach_nexa_monitor_every5minute

ARN de la Lambda: arn:aws:lambda:us-east-1:773714577077:function:task_ach_nexa_monitor

Expresión cron usada: cron(0,5,10,15,20,25,30,35,40,45,50,55 * * * ? *)

Zona horaria seleccionada: America/Guatemala (equivalente a Nicaragua)

Intervalo de tiempo flexible: Desactivado

Configuración limpia: No existen otras reglas que apunten a esta Lambda, y esta Lambda es invocada únicamente por este Scheduler.

Comportamiento esperado: Ejecución únicamente en los minutos exactos: 00:45, 00:50, 00:55, 01:00, etc.

Comportamiento real (ejemplos tomados del 13 de junio de 2025, hora UTC): ✅ OK: 2025-06-13T06:45:11.808Z ❌ NO OK: 2025-06-13T06:46:25.233Z ❌ NO OK: 2025-06-13T06:48:35.660Z ✅ OK: 2025-06-13T06:50:11.339Z ❌ NO OK: 2025-06-13T06:51:24.733Z ❌ NO OK: 2025-06-13T06:53:27.132Z ✅ OK: 2025-06-13T06:55:11.635Z ❌ NO OK: 2025-06-13T06:56:24.022Z Confirguracion cron Logs

2 Respuestas
0

El comportamiento que estás experimentando con EventBridge Scheduler ejecutando tu función Lambda múltiples veces no es el esperado, pero hay algunas explicaciones posibles para este fenómeno.

En casos raros, EventBridge puede ejecutar la misma regla más de una vez para un único evento o tiempo programado. Esto es un comportamiento documentado de EventBridge, donde el mismo objetivo puede ser invocado más de una vez para una regla activada determinada, incluso cuando la ventana de tiempo flexible está desactivada (modo "OFF").

Para resolver este problema, te recomiendo las siguientes acciones:

  1. Implementa idempotencia en tu función Lambda para garantizar que, aunque se ejecute varias veces, no cause efectos secundarios no deseados.

  2. Verifica si hay errores en la ejecución de tu Lambda que puedan estar causando reintentos automáticos.

  3. Considera usar la característica de ventana de tiempo flexible con un valor pequeño (por ejemplo, 1 minuto) para mejorar la confiabilidad de la programación.

  4. Revisa los registros de CloudWatch para ambas ejecuciones para ver si tienen datos de eventos idénticos o si hay mensajes de error.

  5. Habilita los eventos de datos de Lambda en CloudTrail para verificar qué servicio está ejecutando Lambda en los momentos inesperados.

Si el problema persiste después de implementar estas soluciones, podría ser necesario contactar directamente con el soporte de AWS para una investigación más profunda, ya que este comportamiento no es típico para EventBridge Scheduler cuando está correctamente configurado.
Sources
Lambda Function Triggering Twice | AWS re:Post
AWS EventBridge Scheduler Rules Fire Immediately After Terraform Deployment Outside Scheduled Window | AWS re:Post
Lambda attached to API Gateway is called multiple times even when scheduled once. | AWS re:Post

respondido hace un mes
0

Hola Fran,

Revisando los CloudWatch logs de la ejecución de Lambda que compartes en la imagen, puedo ver que la petición que se esta ejecutando es siempre la misma (mismo valor de RequestId). Además, parece que la función no acaba su ejecución en un tiempo inferior al timeout configurado. Fíjate que la duración es siempre 15000 ms y que seguramente este valor coincide con el configurado para tu función.

Con estos indicios, todo parece indicar que la función no esta acabando su ejecución de forma exitosa y, por tanto, el servicio de EventBridge Scheduler la vuelve a invocar como parte de su política de reintentos. Puedes añadir más logging a la función para ver su progreso y así detectar por qué no acaba dentro del tiempo esperado (o quizá, es legítimo que tarde ese tiempo y lo que hay que hacer es incrementar el timeout).

Una vez la función pueda acabar con éxito, EventBridge Scheduler no volverá a intentar su ejecución.

Un saludo.

AWS
respondido hace 25 días

No has iniciado sesión. Iniciar sesión para publicar una respuesta.

Una buena respuesta responde claramente a la pregunta, proporciona comentarios constructivos y fomenta el crecimiento profesional en la persona que hace la pregunta.