使用 Amazon CLI 创建计划任务 - Amazon Elastic Container Service
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

使用 Amazon CLI 创建计划任务

本主题描述如何使用 Amazon CLI 创建计划任务。创建计划的任务使用 CloudWatch Events API。有关更多信息,请参见 Amazon CloudWatch 用户指南中的什么是 Amazon CloudWatch Events?

完成以下先决任务:

创建计划任务 (Amazon CLI)

  1. 创建 CloudWatch Events 规则 该示例创建一个名为 MyRule1 的可在协调世界时每天下午的 12:00 启动的规则。您可以更改时间,更方便地验证计划结果。第一个占位符是分钟,第二个占位符是 UTC 小时。有关规则表达式的其他示例,请参阅 Amazon CloudWatch Events 用户指南中的规则的计划表达式

    aws events put-rule \ --schedule-expression "cron(0 12 * * ? *)" --name MyRule1
  2. 添加 Amazon ECS 集群的详细信息和任务定义作为 CloudWatch Events 规则的目标。使用完整 Amazon Resource Name (ARN) 指定集群和任务定义。必须在任务定义或 put-targets 命令行中规定启动类型和网络配置。使用 Fargate 时,必须将网络配置定义为 awsvpc

    在本例中,目标被定义为基于 first-run-task-definition:1 任务定义在其中运行Fargate任务的 default 集群。根据 MyRule1 计划运行一个任务的计数。已将 ecsEventsRole IAM 角色分配给目标。启动类型为 FARGATE,网络配置定义为 awsvpc 带有安全组和公用子网。从原定设置集群中的 ECS 实例运行命令。有关 put-targets 的更多信息,请参阅 put-targets。必须已创建集群和任务定义。否则,您会收到错误。

    创建一个名为 scheduledtask.json 的本地文件,包含以下内容:

    [{ "Id": "1", "Arn": "arn:aws:ecs:us-east-1:123456789012:cluster/default", "RoleArn": "arn:aws:iam::123456789012:role/ecsEventsRole", "EcsParameters": { "TaskDefinitionArn": "arn:aws:ecs:us-east-1:123456789012:task-definition/first-run-task-definition:1", "TaskCount": 1, "LaunchType": "FARGATE", "NetworkConfiguration": { "awsvpcConfiguration": { "Subnets": ["subnet1"], "SecurityGroups": ["secgroup1"], "AssignPublicIp": "ENABLED" } }, "PlatformVersion": "LATEST" } }]

    输入以下命令创建目标:

    aws events put-targets \ --rule "MyRule1" \ --targets file://scheduledtask.json