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

排定的任务 (cron)

Amazon ECS 支持在类似 cron 的计划中或对 CloudWatch Events 的响应中安排任务的能力。使用 Fargate 和 EC2 启动类型的 Amazon ECS 任务支持这一点。

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

您现在也可以将 Fargate 任务设置为 CloudWatch Events 中的任务目标,从而允许您启动任务以响应发生的更改。此外,您可以在使用 awsvpc 网络模式时通过 CloudWatch Events 控制台和 AWS CLI 来修改网络配置,这将为 CloudWatch Events 所触发的 Fargate 任务提供与 Amazon EC2 实例相同的联网属性。有关更多信息,请参阅 Amazon CloudWatch Events 用户指南 中的教程:当文件上传至 Amazon S3 存储桶时运行 Amazon ECS 任务

注意

此功能尚不可用于以下区域中的 Fargate 任务:

区域名称

区域

亚太地区(香港)

ap-east-1

创建计划任务

  1. https://console.amazonaws.cn/ecs/ 上打开 Amazon ECS 控制台。

  2. 选择要在其中创建计划任务的集群。

  3. Cluster: cluster-name 页面上,依次选择 Scheduled TasksCreate

  4. Schedule rule name 中,为计划规则输入唯一的名称。不得超过 64 个字母、数字、句点、连字符和下划线组合。

  5. (可选) 在 Schedule rule description 中,输入规则说明。最多允许 512 个字符。

  6. 对于 Schedule rule type,选择计划规则使用固定间隔计划还是 cron 表达式。有关更多信息,请参阅 Amazon CloudWatch Events 用户指南 中的规则的计划表达式

    • 对于 Run at fixed interval,为计划输入时间间隔和单位。

    • 对于 Cron expression,为任务计划输入 cron 表达式。这些表达式有六个必填字段,字段以空格分隔。有关更多信息及 cron 表达式的示例,请参阅 Amazon CloudWatch Events 用户指南 中的 Cron 表达式

  7. 为计划规则创建一个目标。

    1. 对于 Target id (目标 ID),为目标输入唯一的标识符。不得超过 64 个字母、数字、句点、连字符和下划线组合。

    2. 对于 Launch type (启动类型),为您的服务中的任务选择启动类型。有关更多信息,请参阅Amazon ECS 启动类型

    3. 对于 Task definition,选择要为该目标运行的任务定义的系列和修订 (family:revision)。

    4. 对于 Platform version (平台版本),选择要用于此目标的平台版本。有关更多信息,请参阅AWS Fargate 平台版本

      注意

      平台版本仅适用于使用 Fargate 启动类型的任务。

    5. 对于 Number of tasks,输入规则执行时要在集群上运行的指定任务定义的实例化数量。

    6. (可选)对于 Task role override (任务角色覆盖),选择要为目标中的任务使用的 IAM 角色,而不是任务定义默认值。有关更多信息,请参阅任务的 IAM 角色。此处仅显示具有 Amazon EC2 Container Service Task Role 信任关系的角色。有关如何为任务创建 IAM 角色的更多信息,请参阅 为任务创建 IAM 角色和策略。必须为对于 CloudWatch IAM 角色的任何任务角色覆盖添加 iam:PassRole 权限。有关更多信息,请参阅CloudWatch Events IAM 角色

    7. 如果计划的任务的任务定义使用 awsvpc 网络模式,则必须为计划的任务配置 VPC、子网和安全组设置。有关更多信息,请参阅awsvpc 网络模式的任务联网

      1. 对于 Cluster VPC (集群 VPC),如果选择 EC2 启动类型,请选择容器实例所在的 VPC。如果选择 Fargate 启动类型,请选择 Fargate 任务应使用的 VPC。确保您选择的 VPC 未配置为需要专用硬件租赁,因为 Fargate 任务对此不予支持。

      2. 对于 Subnets (子网),请为计划的任务放置选择可用子网。

        重要

        awsvpc 网络模式仅支持私有子网。由于任务不接收公有 IP 地址,因此出站 Internet 访问需要 NAT 网关,并且入站 Internet 流量应通过负载均衡器进行路由。

      3. 对于 Security groups (安全组),已经为计划的任务创建了一个安全组,允许来自 Internet 的 HTTP 流量 (0.0.0.0/0)。要编辑此安全组的名称或规则,或选择现有安全组,请选择 Edit,然后修改安全组设置。

      4. 对于自动分配公有 IP,选择是否让您的任务收到公有 IP 地址。如果使用 Fargate 任务,则必须向该任务的弹性网络接口分配一个公有 IP 地址,具有到 Internet 的路由,或可以将请求路由到 Internet 的 NAT 网关。这允许任务提取容器映像。

    8. 对于 CloudWatch Events IAM role for this target (此目标的 CloudWatch Events IAM 角色),选择已经创建的某个现有 CloudWatch Events 服务角色 (ecsEventsRole)。或者,选择 Create new role (创建新角色) 创建所需的 IAM 角色,以允许 CloudWatch Events 调用 Amazon ECS 代表您运行任务。有关更多信息,请参阅CloudWatch Events IAM 角色

      重要

      如果计划任务需要使用任务执行角色,或者需要使用任务角色覆盖,则必须将任务执行角色或任务角色覆盖的 iam:PassRole 权限添加到 CloudWatch IAM 角色。有关更多信息,请参阅 CloudWatch Events IAM 角色

    9. (可选) 在 Container overrides 部分中,您可以展开各个容器并覆盖对应容器的命令和/或环境变量 (任务定义中的定义)。

  8. (可选) 要添加其他目标 (执行该规则时运行的其他任务),请选择 Add targets,并为每个其他目标重复上一个子步骤。

  9. 选择 Create (创建)

编辑计划任务

  1. https://console.amazonaws.cn/ecs/ 上打开 Amazon ECS 控制台。

  2. 选择要编辑其计划任务的集群。

  3. Cluster: cluster-name 页面上,选择 Scheduled Tasks

  4. 选中要编辑的计划规则左侧的框,然后选择 Edit

  5. 编辑要更新的字段,然后选择 Update