使用 Amazon S EventBridge cheduler 开始执行 Step Functions 状态机 - AWS Step Functions

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

使用 Amazon S EventBridge cheduler 开始执行 Step Functions 状态机

Amazon Sched EventBridge uler 是一种无服务器计划程序,允许您通过一个中央托管服务创建、运行和管理任务。使用 EventBridge Scheduler,您可以使用 cron 和速率表达式为重复模式创建计划,也可以配置一次性调用。您可以设置灵活的交付时间窗口,定义重试限制,并为失败的API调用设置最大保留时间。

例如,使用 S EventBridge cheduler,您可以在发生与安全相关的事件时按计划启动状态机执行,或者自动执行数据处理作业。

本页介绍如何使用 EventBridge 调度器按计划开始执行 Step Functions 状态机。

设置执行角色

创建新计划时, EventBridge 调度器必须有权代表您调用其目标API操作。您可以使用执行角色向 EventBridge 调度器授予这些权限。您附加到计划执行角色的权限策略定义了所需权限。这些权限取决于API您希望 EventBridge 调度程序调用的目标。

当您使用 EventBridge 调度器控制台创建计划时,如以下过程所示, EventBridge 调度器会根据您选择的目标自动设置执行角色。如果要使用 EventBridge 调度器SDKs、或中的一个来创建计划 AWS CLI AWS CloudFormation,则必须有一个现有的执行角色来授予 EventBridge 调度器调用目标所需的权限。有关为计划手动设置执行角色的更多信息,请参阅《日程EventBridge 安排器用户指南》中的设置执行角色

创建计划

使用控制台创建计划
  1. https://console.aws.amazon.com/scheduler/家中打开 Amazon EventBridge 日程安排器控制台。

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

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

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

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

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

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

    1. 选择计划选项。

      出现 请执行此操作...

      一次性计划

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

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

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

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

      • 对于时区,选择时区。

      定期计划

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

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

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

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

          有关 cron 和费率表达式的更多信息,请参阅 A mazon EventBridge 计划程序用户指南中的计划 EventBridge 程序中的计划类型

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

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

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

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

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

  5. 选择下一步

  6. 选择目标页面上,选择 EventBridge 调度器调用的 AWS API操作:

    1. 选择AWS Step Functions StartExecution

    2. 在该StartExecution部分中,选择状态机或选择创建新状态机

      目前,您无法按计划运行同步快速工作流。

    3. 输入执行的JSON有效负载。即使您的状态机不需要任何JSON有效负载,您仍然必须以以下示例所示的JSON格式包含输入。

      { "Comment": "sampleJSONData" }
  7. 选择下一步

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

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

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

      • 切换重试

      • 对于事件的最大持续时间,请输入 EventBridge 调度器必须保留未处理事件的最大小时最小值。

      • 最长时间为 24 小时。

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

        最大值为 185 次重试。

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

    3. 选择 EventBridge 日程安排器存储未传送事件的位置。

      死信队列 () 选项 DLQ 请执行此操作...
      请勿存储 选择 None
      将活动存储 AWS 账户 在您创建日程安排的同一位置
      1. 在 “我 AWS 账户 的” 中选择 “选择一个 Amazon SQS 队列” DLQ。

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

      将活动存储在与您创建日程表不同的 AWS 账户 位置
      1. 选择将 “其他” 中的 Amazon SQS 队列指定 AWS 账户 为DLQ

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

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

      如果选择此选项,请输入现有KMS密钥ARN或选择创建 AWS KMS key以导航到 AWS KMS 控制台。有关 EventBridge 计划程序如何加密静态数据的更多信息,请参阅 A mazon EventBridge 计划程序用户指南中的静态加密

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

  9. 选择下一步

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

  11. 选择创建计划

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

要确认 EventBridge 调度器是否调用了状态机,请查看状态机的 Amazon CloudWatch 日志

有关 EventBridge 调度程序的更多信息,请参阅以下内容: