Amazon Elastic Container Service
开发人员指南 (API 版本 2014-11-13)
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 Amazon AWS 入门

计划 Amazon ECS 任务

Amazon Elastic Container Service (Amazon ECS) 是一个共享状态的乐观并发系统,可为您的任务和容器提供灵活的计划功能。Amazon ECS 计划程序利用由 Amazon ECS API 提供的相同群集状态信息来制定适当的放置决策。

Amazon ECS 提供的服务计划程序 (用于长期运行的任务和应用程序) 可以手动运行任务 (用于批处理作业或单个运行任务),并通过 Amazon ECS 将任务放置在您的群集上。您可以指定任务放置策略和约束,以允许您在选择的配置中运行任务,例如在各个可用区域上展开任务。还可以集成自定义或第三方计划程序。

服务计划程序

服务计划程序非常适用于长时间运行的无状态服务和应用程序。服务计划程序可确保指定数量的任务会持续运行并在任务失败时 (例如,在底层基础设施因某个原因失败的情况下) 重新计划任务。此外,服务计划程序可以选择性地确保针对 Elastic Load Balancing 负载均衡器注册任务。您可以更新由服务计划程序维护的服务,例如,部署新的任务定义或更改正在运行的所需任务数。默认情况下,服务计划程序可在多个可用区之间分布任务,但您可以使用任务放置策略和约束自定义任务放置决策。有关更多信息,请参阅 服务

手动运行任务

RunTask 操作非常适用于诸如执行工作然后停止的批处理作业这样的流程。例如,您可以拥有在工作进入队列时调用 RunTask 的流程。任务从队列中拉取工作、执行工作,然后退出。可以使用 RunTask 允许默认任务放置策略在群集中随机分配任务,最大程度地减小单一实例获得不成比例数量的任务的机会。您还可以使用 RunTask 自定义计划程序如何使用任务放置策略和约束放置任务。有关更多信息,请参阅 Amazon Elastic Container Service API Reference 中的 正在运行的任务RunTask

以类似 cron 的计划运行任务

如果需要在群集中以设定的时间间隔运行任务,例如备份操作或日志扫描,则可以使用 Amazon ECS 控制台创建 CloudWatch Events 规则,以便在指定的时间在群集中运行一个或多个任务。您可以将计划事件规则设置为特定的时间间隔 (每 N 分钟、小时或天运行一次);而对于更复杂的计划,可以使用 cron 表达式。有关更多信息,请参阅 排定的任务 (cron)

自定义计划程序

Amazon ECS 允许您根据业务需要自行创建计划程序,或者利用第三方计划程序。Blox 是一个开源项目,使您具有在 Amazon ECS 上运行容器化应用程序的更强控制力。它允许您构建计划程序并将第三方计划程序与 Amazon ECS 集成,同时利用 Amazon ECS 完全管理群集并控制群集规模。自定义计划程序使用 StartTask API 操作将任务置于群集中特定的容器实例上。有关更多信息,请参阅 Amazon Elastic Container Service API Reference 中的 StartTask

注意

自定义计划程序仅与使用 EC2 启动类型的任务兼容。如果您将 Fargate 启动类型用于任务,则 StartTask API 不起作用。

任务放置

RunTaskCreateService 操作允许您指定任务放置约束和任务放置策略,以自定义 Amazon ECS 放置任务的方式。有关更多信息,请参阅 Amazon ECS 任务放置