Migrar desde AWS EventBridge Scheduler
Traslada a SteadyCron los planes de EventBridge Scheduler que llaman a endpoints HTTP — lístalos con la AWS CLI, convierte las expresiones cron y elimina el cableado IAM.
EventBridge Scheduler es la herramienta correcta cuando un plan dispara recursos de AWS. Cuando lo único que hace un plan es llamar a un endpoint HTTP, estás manteniendo roles IAM, API destinations, connections y dead-letter queues para lo que conceptualmente es una línea de YAML. SteadyCron sustituye ese cableado por un HTTP job monitorizado — reintentos, timeouts, alertas y registro de ejecución incluidos, alojado en la UE.
1. Lista tus planes
aws scheduler list-schedules --output table
aws scheduler get-schedule --name nightly-report
Para cada plan que apunte a una API destination (un endpoint HTTP), anota la URL, el método, las cabeceras, la expresión del plan y la zona horaria.
2. Convierte la expresión del plan
EventBridge usa cron de seis campos con ? y expresiones rate; SteadyCron usa cron
estándar de cinco campos o un intervalo simple en segundos:
| EventBridge | SteadyCron |
|---|---|
cron(0 2 * * ? *) | schedule: "0 2 * * *" |
cron(*/15 * * * ? *) | schedule: "*/15 * * * *" |
rate(10 minutes) | interval: 600 |
rate(1 hour) | schedule: "0 * * * *" o interval: 3600 |
(Elimina los campos de segundos/año y sustituye ? por *.)
3. Recrea cada plan como HTTP job
jobs:
- id: nightly-report
name: Nightly report
kind: http
method: POST
url: https://app.example.com/tasks/nightly-report
schedule: "0 2 * * *"
timezone: Europe/Madrid
retries: 3
headers:
Authorization: Bearer ${CRON_SECRET} # se resuelve desde --env-file al aplicar
steadycron validate steadycron.yaml
steadycron apply steadycron.yaml --env-file secrets.env --namespace prod
La cabecera de autenticación sustituye a las credenciales de la connection de
EventBridge; los reintentos sustituyen a la RetryPolicy; el registro de ejecución
sustituye a bucear en CloudWatch.
4. Ejecuta ambos en paralelo y luego limpia
Cuando SteadyCron muestre runs en verde, desactiva el plan de EventBridge
(aws scheduler update-schedule --state DISABLED …) y elimina después el plan, la API
destination, la connection y el rol IAM que ya no se usa.
Qué ganas
| EventBridge Scheduler | SteadyCron | |
|---|---|---|
| Puesta en marcha de un HTTP job | Schedule + API destination + connection + rol IAM | Un bloque YAML |
| Reintentos | RetryPolicy (por schedule) | Por job, backoff exponencial |
| Visibilidad de fallos | Métricas/logs de CloudWatch | Registro de ejecución + alertas (email, Slack, Discord, Telegram, webhook) |
| Monitorización heartbeat | No | Sí |
| Configuración como código | CloudFormation/Terraform (verboso) | Manifiesto YAML o proveedor Terraform oficial |
| Alojamiento | Tu región de AWS | UE (RGPD nativo, DPA firmado) |
Siguientes pasos
- HTTP jobs — request builder, reintentos, timeouts
- YAML y CLI — el flujo completo del manifiesto
- Proveedor Terraform — si prefieres seguir en HCL