AWS CLI 如何生成集群定时任务?

How to generate cluster scheduled task in AWS CLI?

AWS ECS 允许您在集群上创建计划任务。我可以通过 UI 轻松完成此操作,但想在我的持续部署配置中添加一些自动化步骤。虽然我能够找到 the basic documentation provided by Amazon,但我找不到任何关于如何通过 CLI 或 AWS APIs 执行此操作的文档。

我看到他们列出了 StartTask API 数据,但它只说明:

Custom schedulers use the StartTask API operation to place tasks on specific container instances within your cluster.

他们还在文档中列出了 Blox,但似乎没有我想要的。

是否有人有任何 CLI 或 API 示例(任何语言)来说明在 ECS 集群中以编程方式创建基于 cron 的计划任务?

ECS 计划任务由 CloudWatch 事件规则支持,因此在部署期间您可以使用 CLI 更新 CloudWatch 事件规则。

事件的实际负载是 ECS 集群的名称、任务定义和任务定义修订版。如果您尝试通过 UI 编辑事件,您会看到有一个选项可以定义精确修订或使用 "latest" 选项,这基本上根本没有定义修订。

所以解决方案是:

  • 在通过 CLI 部署更新 CloudWatch 事件规则期间
  • 最初创建计划任务,它使用任务的最新修订版(省略任务名称中的修订版,例如 "my-task" 而不是 "my-task:123"),并且在部署期间仅创建新的任务修订版,就像您无论如何都会做的那样