Sintaxis cron de AWS
Una expresión de EventBridge tiene el aspecto cron(0 12 * * ? *) y seis campos: minutos, horas, día del mes, mes, día de la semana y año. No hay campo de segundos, así que la resolución mínima es un minuto. Los días de la semana van de 1 (domingo) a 7 (sábado) y también funcionan nombres como MON-FRI.
Reglas obligatorias
Uno de los dos campos de día debe ser «?»: usa cron(0 8 ? * MON-FRI *) para las mañanas de días laborables y cron(0 8 1 * ? *) para el día 1 de cada mes. El campo de año es obligatorio; usa * para todos los años. Los campos de día admiten L, W y #, por ejemplo cron(0 18 L * ? *) para el último día de cada mes.
Zonas horarias
Las reglas programadas de EventBridge se ejecutan siempre en UTC, por eso la herramienta evalúa las expresiones de AWS en UTC por defecto y muestra tu hora local junto a cada ejecución. EventBridge Scheduler permite asociar una zona horaria a una programación; en ese caso elige la misma zona en el selector para previsualizarla correctamente.
¿Cron o rate?
Para intervalos fijos como cada 15 minutos, una expresión rate es más sencilla: rate(15 minutes) empieza a contar al crear la regla. Usa cron cuando la tarea deba ejecutarse en horas de calendario: a las 08:00 los laborables, el último día del mes o solo en un año concreto. EventBridge Scheduler admite además programaciones únicas at(...) y ventanas de tiempo flexibles que reparten las invocaciones.
Preguntas frecuentes
- ¿Por qué AWS rechaza mi expresión cron?
- Las causas habituales son usar cinco campos en lugar de seis, olvidar el campo de año o no poner «?» en el día del mes o en el día de la semana. El mensaje de error indica el campo incorrecto.
- ¿Cómo ejecuto una Lambda cada 5 minutos con cron?
- Usa cron(0/5 * * * ? *). Para intervalos simples, EventBridge también acepta rate(5 minutes).
- ¿El cron de AWS está en UTC?
- Sí, en las reglas de EventBridge. EventBridge Scheduler permite definir una zona horaria por programación.
- ¿Cuál es el intervalo mínimo?
- Un minuto, porque el cron de AWS no tiene campo de segundos.