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:

EventBridgeSteadyCron
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 SchedulerSteadyCron
Puesta en marcha de un HTTP jobSchedule + API destination + connection + rol IAMUn bloque YAML
ReintentosRetryPolicy (por schedule)Por job, backoff exponencial
Visibilidad de fallosMétricas/logs de CloudWatchRegistro de ejecución + alertas (email, Slack, Discord, Telegram, webhook)
Monitorización heartbeatNo
Configuración como códigoCloudFormation/Terraform (verboso)Manifiesto YAML o proveedor Terraform oficial
AlojamientoTu región de AWSUE (RGPD nativo, DPA firmado)

Siguientes pasos