本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
计划任务 (cron
)
Amazon ECS 支持在类似 cron
的计划中或对 CloudWatch Events. 的响应中安排任务的能力。使用 Amazon ECS 和 Fargate 启动类型的 EC2 任务支持这一点。
如果需要在集群中以设定的时间间隔运行任务,例如备份操作或日志扫描,则可以使用 Amazon ECS 控制台创建 CloudWatch Events 规则,以便在指定的时间在集群中运行一个或多个任务。您的计划事件规则可以设置为特定间隔(运行每个
N
minutes、hours 或 days) 或对于更复杂的计划,您可以使用 cron
表达式。有关更多信息,请参阅 https://docs.amazonaws.cn/AmazonCloudWatch/latest/events/ScheduledEvents.html 中的Amazon CloudWatch Events 用户指南规则的计划表达式.
您现在也可以将 Fargate 任务设置为 CloudWatch Events 中的任务目标,从而允许您启动任务以响应发生的更改。此外,您可以在使用 awsvpc
网络模式时通过 CloudWatch Events 控制台和 AWS CLI 来修改网络配置,这将为 Fargate 所触发的 CloudWatch Events
任务提供与 Amazon EC2 实例相同的联网属性。有关更多信息,请参阅 中的教程:当文件上传到 Amazon ECS 存储桶Amazon S3时运行 Amazon CloudWatch Events 用户指南 任务。
此功能尚不可用于以下区域中的 Fargate 任务:
区域名称 |
区域 |
---|---|
中国(北京) |
cn-north-1 |
中国 (宁夏) |
cn-northwest-1 |
南美洲(圣保罗) |
sa-east-1 |
中东(巴林) |
me-south-1 |
创建计划任务
-
在 https://console.amazonaws.cn/ecs/
上打开 Amazon ECS 控制台。 -
选择要在其中创建计划任务的集群。如果您没有任何集群,请参阅创建集群以了解有关创建新集群的步骤。
-
在集群上:
cluster-name
页面上,依次选择 Scheduled Tasks (计划任务) 和 Create (创建)。 -
对于 Schedule rule name (计划规则名称),输入计划规则的唯一名称。不得超过 64 个字母、数字、句点、连字符和下划线组合。
-
(可选)对于 Schedule rule description (计划规则描述),输入规则的描述。最多允许 512 个字符。
-
对于 Schedule rule type (计划规则类型),选择是对计划规则使用固定间隔计划还是
cron
表达式。有关更多信息,请参阅 https://docs.amazonaws.cn/AmazonCloudWatch/latest/events/ScheduledEvents.html 中的Amazon CloudWatch Events 用户指南规则的计划表达式.-
对于 Run at fixed interval (以固定间隔运行),输入计划的间隔和单位。
-
对于 Cron expression (Cron 表达式),输入任务计划的
cron
表达式。这些表达式有六个必填字段,字段以空格分隔。有关更多信息和cron
表达式的示例,请参阅 中的 Cron Amazon CloudWatch Events 用户指南 表达式。
-
-
为计划规则创建一个目标。
-
对于 Target id (目标 ID),输入目标的唯一标识符。不得超过 64 个字母、数字、句点、连字符和下划线组合。
-
对于 Launch type (启动类型),选择服务中的任务的启动类型。有关更多信息,请参阅Amazon ECS 启动类型.
-
对于 Task definition (任务定义),选择要为此目标运行的任务定义的系列和修订(family:revision)。
-
对于 Platform version (平台版本),选择要用于此目标的平台版本。有关更多信息,请参阅AWS Fargate 平台版本.
注意 平台版本仅适用于使用 Fargate 启动类型的任务。
-
对于 Number of tasks (任务数),输入规则执行时要在集群上运行的指定任务定义的实例化数量。
-
(可选)对于 Task role override (任务IAM角色覆盖),选择要用于目标中的任务的角色,而不是任务定义默认值。有关更多信息,请参阅任务的 IAM 角色. 此处仅显示具有 Amazon EC2 Container Service 任务角色信任关系的角色。有关如何为任务创建 IAM 角色的更多信息,请参阅 为任务创建 IAM 角色和策略. 必须将任何任务角色和任务角色覆盖的
iam:PassRole
权限添加到 CloudWatch IAM 角色。有关更多信息,请参阅Amazon ECS CloudWatch Events IAM 角色. -
如果计划的任务的任务定义使用
awsvpc
网络模式,则必须为计划的任务配置 VPC、子网和安全组设置。有关更多信息,请参阅 中的 Amazon ECS 任务联网-
对于 Cluster VPC (集群 VPC),如果您选择了 EC2 启动类型,请选择您的容器实例所在的 VPC。如果选择 Fargate 启动类型,请选择 Fargate 任务应使用的 VPC。确保您选择的 VPC 未配置为需要专用硬件租赁,因为 Fargate 任务对此不予支持。
-
对于 Subnets (子网),选择计划任务放置的可用子网。
重要 awsvpc
网络模式仅支持私有子网。由于任务不接收公有 IP 地址,因此出站 Internet 访问需要 NAT 网关,并且入站 Internet 流量应通过负载均衡器进行路由。 -
对于 Security groups (安全组),已经为计划的任务创建了一个安全组,允许来自 Internet 的 HTTP 流量 (
0.0.0.0/0
). 要编辑此安全组的名称或规则,或选择现有安全组,请选择 Edit (编辑),然后修改您的安全组设置。 -
对于 Auto-assign Public IP (自动分配公有 IP),选择是否让您的任务接收公有 IP 地址。如果使用 Fargate 任务,则必须向该任务的弹性网络接口分配一个公有 IP 地址,具有到 Internet 的路由,或可以将请求路由到 Internet 的 NAT 网关。这允许任务提取容器映像。
-
-
对于 CloudWatch Events IAM role for this target (此目标的事件 IAM 角色),选择您可能已创建的现有CloudWatch Events服务角色 (
ecsEventsRole
)。或者,选择 Create new role (创建新角色) 以创建所需的 角色,该IAM角色允许 CloudWatch Events 调用 Amazon ECS 以代表您运行任务。有关更多信息,请参阅Amazon ECS CloudWatch Events IAM 角色.重要 如果计划任务需要使用任务执行角色、任务角色或任务角色覆盖,则必须将任务执行角色、任务角色或任务角色覆盖的
iam:PassRole
权限添加到 CloudWatch IAM 角色。有关更多信息,请参阅Amazon ECS CloudWatch Events IAM 角色. -
(可选)在 Container overrides (容器覆盖) 部分中,您可以展开单个容器并覆盖任务定义中定义的该容器的命令和/或环境变量。
-
-
(可选) 要添加其他目标(执行此规则时要运行的其他任务),请选择 Add targets (添加目标),然后对每个额外目标重复前面的子步骤。
-
选择创建.
编辑计划任务
-
在 https://console.amazonaws.cn/ecs/
上打开 Amazon ECS 控制台。 -
选择要编辑其计划任务的集群。
-
在集群上:
cluster-name
页面上,选择 Scheduled Tasks。 -
选中要编辑的计划规则左侧的框,然后选择 Edit.
-
编辑要更新的字段,然后选择 Update.