使用 Amazon EventBridge 调度器按计划运行 Amazon ECS 任务 - Amazon Elastic Container Service
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

使用 Amazon EventBridge 调度器按计划运行 Amazon ECS 任务

EventBridge 调度器是一个无服务器调度器,使您能够从一个中央托管服务创建、运行和管理任务。它提供独立于事件总线和规则的一次性和重复性计划功能。EventBridge Scheduler 具有高度可定制性,与 EventBridge 计划规则相比,可扩展性更高,目标 API 操作和 Amazon 服务范围更广。EventBridge Scheduler 提供以下计划,您可以在 EventBridge Scheduler 控制台中为您的任务配置这些计划:

  • 基于速率

  • 基于 Cron

    您可以在任何时区配置基于 cron 的计划。

  • 一次性计划

    您可以在任何时区配置一次性的计划。

您可以使用 Amazon EventBridge 调度器计划 Amazon ECS。

尽管您可以在 Amazon ECS 控制台中创建计划任务,但目前 EventBridge 调度器控制台提供了更多功能。

在计划任务之前,完成以下步骤:

  1. 使用 VPC 控制台,获取任务运行所在的子网 ID 和子网的安全组 ID。有关更多信息,请参阅《Amazon VPC 用户指南》中的查看您的子网查看您的安全组

  2. 配置 EventBridge Scheduler 执行角色。有关更多信息,请参阅《Amazon EventBridge 调度器用户指南》中的设置执行角色

要使用控制台创建新计划
  1. 打开 Amazon EventBridge 调度器控制台,网址为:https://console.aws.amazon.com/scheduler/home

  2. 计划页面,选择创建计划

  3. 指定计划详细信息页面,在计划名称和描述部分中,执行以下操作:

    1. 对于计划名称,输入计划的名称。例如,MyTestSchedule

    2. (可选)对于描述,输入对计划的描述。例如,TestSchedule

    3. 对于计划组,从下拉列表中选择一个计划组。如果您没有计划组,选择默认。要创建计划组,选择创建自己的计划

      您可以使用计划组将标签添加到计划组。

  4. 选择计划选项。

    出现 请执行此操作...

    一次性计划

    一次性计划仅在您指定的日期和时间调用一次目标。

    对于日期和时间,请执行以下操作:

    • 输入 YYYY/MM/DD 格式的有效日期。

    • 输入 24 小时 hh:mm 格式的时间戳。

    • 对于时区,选择时区。

    定期计划

    定期计划按照您使用 cron 表达式或 rate 表达式指定的速率调用目标。

    1. 对于计划类型,执行以下操作之一:

      • 要使用 cron 表达式定义计划,请选择基于 cron 的计划并输入 cron 表达式。

      • 要使用 rate 表达式定义计划,请选择基于 rate 的计划并输入 rate 表达式。

        有关 cron 和 rate 表达式的更多信息,请参阅 Amazon EventBridge 调度器用户指南 中的 EventBridge 调度器的计划类型

    2. 对于灵活的时间窗口,选择关闭以关闭该选项,或者选择一个预定义的时间窗口。例如,如果您选择 15 分钟并且将定期计划设置为每小时调用一次其目标,则该计划将在每小时开始后的 15 分钟内运行。

  5. (可选)如果您在上一步中选择定期计划,在时间范围部分,请执行以下操作:

    1. 对于时区,请选择时区。

    2. 对于开始日期和时间,请输入 YYYY/MM/DD 格式的有效日期,然后指定 24 小时 hh:mm 格式的时间戳。

    3. 对于结束日期和时间,请输入 YYYY/MM/DD 格式的有效日期,然后指定 24 小时 hh:mm 格式的时间戳。

  6. 选择下一步

  7. 选择目标页面上,执行以下操作:

    1. 选择所有 API,然后在搜索框中输入 ECS

    2. 选择 Amazon ECS

    3. 在搜索框中输入 RunTask,然后选择 RunTask

    4. 对于 Cluster,选择集群。

    5. 对于 ECS 任务,请选择要用于任务的任务定义。

    6. 要使用启动类型,请展开计算选项,然后选择启动类型。然后,选择启动类型。

      当指定 Fargate 启动类型时,对于平台版本中,输入要使用的平台版本。如果未指定任何平台,将使用 LATEST 平台版本。

    7. 对于子网,请输入要在其中运行任务的子网 ID。

    8. 对于安全组,请输入子网的安全组 ID。

    9. (可选)要使用默认策略之外的其他任务放置策略,请展开置放约束,然后输入约束。

      有关更多信息,请参阅 Amazon ECS 如何将任务放置在容器实例上

    10. (可选)为了帮助识别您的任务,请在标签下配置您的标签。

      要让 Amazon ECS 使用任务定义标签自动标记全部新启动的任务,选择启用 Amazon ECS 托管标签

  8. 选择下一步

  9. Settings (设置) 页面上,执行以下操作:

    1. 要打开计划,在计划状态下,切换启用计划

    2. 要为计划配置重试策略,在重试策略和死信队列(DLQ)下,请执行以下操作:

      • 切换重试

      • 对于事件的最长保留时间,输入 EventBridge Scheduler 器必须保留未处理事件的最长小时分钟数。

      • 最长时间为 24 小时。

      • 对于最大重试次数,输入在目标返回错误的情况下,EventBridge  调度器重试计划的最大次数。

        最大值为 185 次重试。

      配置重试策略后,如果计划未能调用其目标,EventBridge 调度器将重新运行该计划。如果已配置,则必须为计划设置最长保留时间和最大重试次数。

    3. 选择 EventBridge 调度器存储未送达事件的位置。

      死信队列(DLQ)选项 请执行此操作...
      请勿存储 选择 None
      将事件存储在创建计划所在的同一 Amazon Web Services 账户 中
      1. 选择在我的 Amazon Web Services 账户 中选择一个 Amazon SQS 队列作为 DLQ

      2. 选择 Amazon SQS 队列的 Amazon 资源名称(ARN)。

      将事件存储在与创建计划所在不同的 Amazon Web Services 账户 中
      1. 选择在另一个 Amazon Web Services 账户 中指定一个 Amazon SQS 队列作为 DLQ

      2. 输入 Amazon SQS 队列的 Amazon 资源名称(ARN)。

    4. 要使用客户托管密钥加密目标输入,在加密下,选择自定义加密设置(高级)

      如果选择此选项,请输入现有的 KMS 密钥 ARN 或选择创建一个 Amazon KMS key 以导航到 Amazon KMS 控制台。有关 EventBridge 调度器如何加密静态数据的更多信息,请参阅 Amazon EventBridge 调度器用户指南 中的 静态加密

    5. 对于权限,选择使用现有角色,然后选择角色。

      要让 EventBridge 调度器为您创建新的执行角色,请选择为此计划创建新角色。然后,在角色名称中输入名称。如果您选择此选项,EventBridge 调度器会将模板化目标所需的必要权限附加到该角色。

  10. 选择下一步

  11. 查看并创建计划页面上,查看计划的详细信息。在每个部分中,选择编辑返回到该步骤并编辑其详细信息。

  12. 选择创建计划

    您可以在计划页面上查看新的和现有的计划列表。在状态列下,验证新计划是否已启用

后续步骤

您可以使用 EventBridge Scheduler 控制台或 Amazon CLI 来管理计划。有关更多信息,请参阅《Amazon EventBridge 调度器用户指南》中的管理计划