创建按计划运行的亚马逊 EventBridge 规则 - 亚马逊 EventBridge
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

创建按计划运行的亚马逊 EventBridge 规则

规则可以响应事件运行,也可以按特定的时间间隔运行。例如,要定期运行Amazon Lambda函数,可以创建按计划运行的规则。

注意

EventBridge 提供了 Amazon Sched EventBridge uler,这是一款无服务器计划程序,允许您通过一个中央托管服务创建、运行和管理任务。 EventBridge Scheduler 具有高度可定制性,与 EventBridge计划规则相比,它具有更高的可扩展性,具有更广泛的目标 API 操作和Amazon服务。

我们建议您使用 EventBridge 调度器按计划调用目标。有关更多信息,请参阅在亚马逊上使用亚马逊 EventBridge 日程安排 EventBridge

在中 EventBridge,您可以创建两种类型的计划规则:

  • 按正常费率运行的规则

    EventBridge 定期运行这些规则;例如,每 20 分钟运行一次。

    要为计划规则指定费率,请定义比率表达式

  • 在特定时间运行的规则

    EventBridge 在特定的时间和日期运行这些规则;例如,上午 8:00 太平洋标准时间在每个月的第一个星期一。

    要指定计划规则的运行时间和日期,请定义 cron 表达式

速率表达式更易于定义,而 cron 表达式则提供详细的日程控制。例如,使用 cron 表达式,您可以定义一条规则,该规则在每周或每月的某一天的指定时间运行。相比之下,费率表达式以常规速率运行规则,例如每小时一次或每天一次。

所有计划的事件都使用 UTC+0 时区,并且计划的最低精度为一分钟。

注意

EventBridge 在调度表达式中不提供二级精度。使用 cron 表达式的最高分辨率为一分钟。由于目标服务的分布式特 EventBridge 性,从触发调度规则到目标服务运行目标资源的时间之间可能会有几秒钟的延迟。

以下视频概述了调度任务:

创建按计划运行的规则

以下步骤将引导您完成如何创建定期运行的 EventBridge 规则。

注意

您只能使用默认事件总线创建计划规则。

定义规则

首先,输入规则的名称和描述以对其进行识别。

定义规则细节
  1. 打开亚马逊 EventBridge 控制台,网址为 https://console.aws.amazon.com/events/

  2. 在导航窗格中,选择 Rules (规则)

  3. 选择 Create rule (创建规则)

  4. 输入规则的名称描述(可选)。

    规则不能与同一 Amazon Web Services 区域中和同一事件总线上的另一条规则的名称相同。

  5. 对于事件总线,请选择默认的事件总线。您只能使用默认事件总线创建计划规则。

  6. 要使规则在创建后立即生效,请确保已启用 “在所选事件总线上启用规则” 选项。

  7. 对于 Rule type(规则类型),选择 Schedule(计划)。

    此时,您可以选择继续创建按计划运行的规则,也可以使用 Amazon S EventBridge cheduler。

  8. 选择您想要的继续方式:

    • 使用 EventBridge 日程安排器创建您的日程安排

      注意

      EventBridge Scheduler 是一种无服务器调度程序,允许您通过一个中央托管服务创建、运行和管理任务。它提供独立于事件总线和规则的一次性和重复性调度功能。 EventBridge Scheduler 具有高度可定制性,与 EventBridge 计划规则相比,它具有更高的可扩展性,具有更广泛的目标 API 操作和Amazon服务。

      我们建议您使用 EventBridge 调度器按计划调用目标。有关更多信息,请参阅什么是亚马逊 EventBridge 日程安排? 在《亚马逊 EventBridge 日程安排器用户指南》中。

      1. 在 EventBridge 日程安排中选择 “继续

        EventBridge 打开 EventBridge 调度程序控制台,进入 “创建计划” 页面。

      2. 在@@ 日程安排控制台中 EventBridge 创建计划。

    • 继续使用 EventBridge 为默认事件总线创建计划规则

      1. 选择 “继续” 以创建规则

定义日程安排

接下来,定义计划模式。

定义计划模式
  1. 在 “计划模式” 中,选择是希望计划在特定时间运行,还是按常规速率运行:

    Specific time
    1. 选择在特定时间(例如上午 8:00)运行的精细时间表。太平洋标准时间在每个月的第一个星期一。

    2. 于 Cron 表达式,请指定字段以定义 EventBridge 应用于确定何时执行此计划规则的 cron 表达式。

      指定所有字段后, EventBridge 将 EventBridge 显示接下来的十个执行此计划规则的日期。您可以选择是以 UTC 还是本地时区显示这些日期。

      有关构造 cron 表达式的更多信息,请参阅Cron 表达式参考

    Regular rate
    1. 选择按固定速率运行的时间表,例如每 10 分钟运行一次。

    2. 速率表达式中,指定 “” 和 “单位” 字段,以定义执行 EventBridge 此计划规则的速率。

      有关构造比率表达式的更多信息,请参阅费率表达式参考

  2. 选择下一步

选择目标

选择一个或多个目标来接收与指定模式相匹配的事件。目标可以包括 EventBridge 活动总线、 EventBridge API 目的地(包括 Salesforce 等 SaaS 合作伙伴)或其他Amazon Web Service合作伙伴。

选择目标
  1. 对于目标类型,请选择以下目标类型之一:

    Event bus

    要选择 EventBridge 事件总线,请选择EventBridge 事件总线,然后执行以下操作:

    API destination

    要使用 EventBridge API 目标,请选择 EventBridge API 目标,然后执行以下任一操作:

    • 要使用现有 API 目标,请选择使用现有 API 目标。然后从下拉列表中选择 API 目的地。

    • 要创建新的 API 目标,请选择创建新的 API 目标。然后,提供目的地的以下详细信息:

      • 名称-输入目的地的名称。

        您的姓名必须是唯一的Amazon Web Services 账户。名称最多可包含 64 个字符。有效字符为 A-Z、a -z0-9 和 _ -(连字符)。

      • (可选)描述-输入目的地的描述。

        描述最多可包含 512 个字符。

      • API 目标端点-目标的 URL 终端节点。

        终端节点 URL 必须以开头https。您可以将*作为路径参数通配符包括在内。您可以根据目标的HttpParameters属性设置路径参数。

      • HTTP 方法-选择调用端点时使用的 HTTP 方法。

      • (可选)每秒调用速率限制-输入此目标每秒可接受的最大调用次数。

        该值必须大于零。默认情况下,此值设置为 300。

      • 连接-选择使用新的或现有的连接:

        • 要使用现有连接,请选择 “使用现有连接”,然后从下拉列表中选择该连接。

        • 要为此目标创建新连接,请选择创建新连接,然后定义连接的名称目标类型授权类型。您也可以为此连接添加可选的描述

    有关更多信息,请参阅API 目的地

    Amazon Web Service

    要使用Amazon Web Service,请选择 Amazon Web Service,然后执行以下操作:

    1. “选择目标” 中,选择一个Amazon Web Service用作目标。提供所选服务所需的信息。

      注意

      显示的字段因所选服务而异。有关可用目标的更多信息,请参阅 EventBridge 控制台中可用的目标

  2. 对于许多目标类型, EventBridge 需要权限以便将事件发送到目标。在这些情况下, EventBridge 可以创建规则运行所需的 IAM 角色。

    对于执行角色,请执行以下任一操作:

    • 要为此规则创建新的执行角色,请执行以下操作:

      1. 选择 “为此特定资源创建新角色”。

      2. 要么输入此执行角色的名称,要么使用生成的名称 EventBridge。

    • 要使用此规则的现有执行角色,请执行以下操作:

      1. 选择 “使用现有角色”。

      2. 从下拉列表中输入或选择要使用的执行角色的名称。

  3. (可选)对于其他设置,请指定适用于您的目标类型的任何可选设置:

    Event bus

    (可选)对于死信队列,选择是否使用标准的 Amazon SQS 队列作为死信队列。 EventBridge 如果匹配此规则的事件未成功传送到目标,则将其发送到死信队列。请执行下列操作之一:

    • 选择不使用死信队列。

    • 在当前 Amazon 帐户中选择选择一个Amazon SQS队列用作死信队列,然后从下拉列表中选择要使用的队列。

    • 选择在其他 Amazon SQS 队列中选择其他队列 Amazon 帐户作为死信队列,然后输入要使用的队列的 ARN。您必须将基于资源的策略附加到队列,以授予向该队列发送消息的 EventBridge权限。

      有关更多信息,请参阅向死信队列授予权限

    API destination
    1. (可选)在 “配置目标输入” 中,选择要如何自定义发送到目标以匹配事件的文本。选择以下选项之一:

      • 匹配的事件- EventBridge 将整个原始源事件发送到目标。这是默认模式。

      • 匹配事件的一部分 — EventBridge 仅将原始源事件的指定部分发送到目标。

        在 “指定匹配事件的部分” 下,指定一个 JSON 路径,该路径定义了要发送 EventBridge 到目标的事件部分。

      • 常量(JSON 文本)-仅 EventBridge 向目标发送指定的 JSON 文本。原始源事件的任何部分都不会被发送。

        在 “在 JSON 中指定常量” 下,指定要发送 EventBridge 到目标而不是事件的 JSON 文本。

      • 输入转换器-配置输入转换器以自定义要 EventBridge 发送到目标的文本。有关更多信息,请参阅亚马逊 EventBridge 输入转换

        1. 选择 “配置输入变压器”。

        2. 按照中的步骤配置输入变压器在创建规则的过程中配置输入变压器

    2. (可选)在 “重试策略” 下,指定发生错误后 EventBridge 应如何重试向目标发送事件。

      • 事件的最大持续时间-输入保留未处理事件的最大时间( EventBridge 以小时、分钟和秒为单位)。默认值为 24 小时。

      • 重试尝试-输入发生错误后重试向目标发送事件的最大次 EventBridge 数。默认值为 185 次。

    3. (可选)对于死信队列,选择是否使用标准的 Amazon SQS 队列作为死信队列。 EventBridge 如果匹配此规则的事件未成功传送到目标,则将其发送到死信队列。请执行下列操作之一:

      • 选择不使用死信队列。

      • 在当前 Amazon 帐户中选择选择一个Amazon SQS队列用作死信队列,然后从下拉列表中选择要使用的队列。

      • 选择在其他 Amazon SQS 队列中选择其他队列 Amazon 帐户作为死信队列,然后输入要使用的队列的 ARN。您必须将基于资源的策略附加到队列,以授予向该队列发送消息的 EventBridge 权限。

        有关更多信息,请参阅向死信队列授予权限

    Amazon service

    请注意, EventBridge 可能不会显示给定Amazon服务的以下所有字段。

    1. (可选)在 “配置目标输入” 中,选择要如何自定义发送到目标以匹配事件的文本。选择以下选项之一:

      • 匹配的事件- EventBridge 将整个原始源事件发送到目标。这是默认模式。

      • 匹配事件的一部分 — EventBridge 仅将原始源事件的指定部分发送到目标。

        在 “指定匹配事件的部分” 下,指定一个 JSON 路径,该路径定义了要发送 EventBridge 到目标的事件部分。

      • 常量(JSON 文本)-仅 EventBridge 向目标发送指定的 JSON 文本。原始源事件的任何部分都不会被发送。

        在 “在 JSON 中指定常量” 下,指定要发送 EventBridge 到目标而不是事件的 JSON 文本。

      • 输入转换器-配置输入转换器以自定义要 EventBridge 发送到目标的文本。有关更多信息,请参阅亚马逊 EventBridge 输入转换

        1. 选择 “配置输入变压器”。

        2. 按照中的步骤配置输入变压器在创建规则的过程中配置输入变压器

    2. (可选)在 “重试策略” 下,指定发生错误后 EventBridge 应如何重试向目标发送事件。

      • 事件的最大持续时间-输入保留未处理事件的最大时间( EventBridge 以小时、分钟和秒为单位)。默认值为 24 小时。

      • 重试尝试-输入发生错误后重试向目标发送事件的最大次 EventBridge 数。默认值为 185 次。

    3. (可选)对于死信队列,选择是否使用标准的 Amazon SQS 队列作为死信队列。 EventBridge 如果匹配此规则的事件未成功传送到目标,则将其发送到死信队列。请执行下列操作之一:

      • 选择不使用死信队列。

      • 在当前 Amazon 帐户中选择选择一个Amazon SQS队列用作死信队列,然后从下拉列表中选择要使用的队列。

      • 选择在其他 Amazon SQS 队列中选择其他队列 Amazon 帐户作为死信队列,然后输入要使用的队列的 ARN。您必须将基于资源的策略附加到队列,以授予向该队列发送消息的 EventBridge 权限。

        有关更多信息,请参阅向死信队列授予权限

  4. (可选)选择 Add another target(添加其他目标),以为此规则添加其他目标。

  5. 选择下一步

配置标签和审核规则

最后,为规则输入所需的任何标签,然后查看并创建规则。

配置标签,查看和创建规则
  1. (可选)为规则输入一个或多个标签。有关更多信息,请参阅亚马逊 EventBridge 标签

  2. 选择下一步

  3. 查看新规则的详细信息。要对任何部分进行更改,请选择该分区旁边的编辑按钮。

    如果对规则详细信息感到满意,请选择创建规则