← 中文资源

简体中文版本

用 EventBridge 定时调度 ECS 任务

通过 EventBridge 规则按计划运行容器化任务,并验证重试与日志记录。

阅读英文原文

目标

夜间批处理目前跑在手工维护的服务器上,需要迁移为定时 ECS 任务。本配方创建定时规则并把目标指向 ECS 任务定义,赋予 events 角色以启动权限,再通过 CloudWatch 日志确认计划触发;同时提醒时区为 UTC、任务需幂等以应对可能的重试。

步骤要点

  1. 创建定时规则并把 ECS 任务作为目标。
  2. 为 events 角色配置启动任务的权限。
  3. 通过 CloudWatch 日志确认任务按时运行。
  4. 让任务幂等以应对可能的重试。
aws events put-rule --name nightly-job --schedule-expression 'cron(0 2 * * ? *)'
aws events put-targets --rule nightly-job \
  --targets "Id"="1","Arn"="arn:aws:ecs:region:acct:cluster/main","RoleArn"="arn:aws:iam::acct:role/events-ecs","EcsParameters"={"TaskDefinitionArn"="arn:aws:ecs:region:acct:task-def/job:3","TaskCount"=1}

排错提示

  • 任务不启动通常是 roles 信任策略问题。
  • EventBridge 重试可能导致重复运行。
  • 时区固定为 UTC。

适用边界

  • 不是工作流引擎,复杂依赖需 Step Functions。
  • 任务定义需显式版本化。