

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

# 在 Amazon 中创建计划规则（旧版） EventBridge
<a name="eb-create-rule-schedule"></a>

**注意**  
计划规则是的传统功能 EventBridge。  
EventBridge提供了一种更灵活、更强大的方式来大规模集中创建、运行和管理计划任务：S EventBridge cheduler。使用 EventBridge Scheduler，您可以使用 cron 和速率表达式为重复模式创建计划，也可以配置一次性调用。您可以设置灵活的交付时间窗口、定义重试限制，并为失败的 API 调用设置最大保留时间。  
Scheduler 具有高度可定制性，与计划规则相比，它具有更高的可扩展性，具有更广泛的目标 API 操作和 AWS 服务。建议您使用此调度器按计划调用目标。  
有关更多信息，请参阅[创建计划](using-eventbridge-scheduler.md#using-eventbridge-scheduler-create)或《*[EventBridge 日程安排用户指南》](https://docs.aws.amazon.com/scheduler/latest/UserGuide/what-is-scheduler.html)*。

在中 EventBridge，您可以创建两种类型的计划规则：
+ 按正常频率运行的规则

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

  要为计划规则指定频率，请定义 *rate 表达式*。
+ 在特定时间运行的规则

  EventBridge 在特定的时间和日期运行这些规则；例如，上午 8:00 PST，每个月的第一个星期一。

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

rate 表达式更易于定义，而 cron 表达式可提供详细的计划控制。例如，使用 cron 表达式，您可以定义在每周或每月的某一天的指定时间运行的规则。相反，rate 表达式以常规速率运行规则，例如每小时一次或每天一次。

所有计划的事件都使用 UTC\$10 时区，计划的最小精度为 1 分钟。

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

## 创建计划规则（旧版）
<a name="eb-create-scheduled-rule"></a>

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

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

**Topics**
+ [定义规则](#eb-create-scheduled-rule-define)
+ [定义计划](#eb-create-scheduled-rule-schedule)
+ [选择目标](#eb-create-scheduled-rule-target)
+ [配置标签并检查规则](#eb-create-scheduled-rule-review)

### 定义规则
<a name="eb-create-scheduled-rule-define"></a>

首先，为您的规则输入用于标识它的名称和描述。

**定义规则细节**

1. 打开亚马逊 EventBridge 控制台，网址为[https://console.aws.amazon.com/events/](https://console.aws.amazon.com/events/)。

1. 在导航窗格的 “**计划程序**” 下，选择 “**计划规则（旧版）**”。

1. 选择**创建计划规则**。

1. 输入规则的**名称**和可选**描述**。

   一条规则不能与同一事件总线上的另一条规则同名。 AWS 区域 

1. 要使规则在创建后立即生效，请确保**启用计划规则**选项处于启用状态。

### 定义计划
<a name="eb-create-scheduled-rule-schedule"></a>

接下来，定义计划模式。

**定义计划模式**
+ 在**计划模式**中，选择是希望计划在特定时间运行，还是按固定频率运行：

------
#### [ Specific time ]

  1. 选择**在特定时间运行的精细计划，例如上午 8:00 PST，每个月的第一个星期一。**

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

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

     有关构造 cron 表达式的更多信息，请参阅 [Cron 表达式](eb-scheduled-rule-pattern.md#eb-cron-expressions)。

------
#### [ Regular rate ]

  1. 选择**以固定频率运行的计划，例如每 10 分钟运行一次。**

  1. 在**速率表达式**中，指定**值**和**单位**字段以定义执行 EventBridge 此计划规则的速率。

     有关构造 rate 表达式的更多信息，请参阅 [Rate 表达式](eb-scheduled-rule-pattern.md#eb-rate-expressions)。

------

### 选择目标
<a name="eb-create-scheduled-rule-target"></a>

选择一个或多个目标，接收与指定模式匹配的事件。目标可以包括 EventBridge 活动总线、 EventBridge API 目的地（包括 Salesforce 等 SaaS 合作伙伴）或其他 AWS 服务合作伙伴。

**选择目标**

1. 对于**目标类型**，请选择以下目标类型之一：

------
#### [ Event bus ]

   要选择 EventBridge 事件总线，请选择**EventBridge 事件总线**，然后执行以下操作：
   + 要使用与此规则相同 AWS 区域 的事件总线，请执行以下操作：

     1. 选择**同一账户和区域中的事件总线**。

     1. 对于**目标的事件总线**，选择下拉框并输入事件总线的名称。您也可以从下拉列表中选择事件总线。

        有关更多信息，请参阅 [在同一账户和亚马逊区域的事件总线之间发送事件 EventBridge](eb-bus-to-bus.md)。
   + 要按此规则使用不同的 o AWS 区域 r 账户中的事件总线，请执行以下操作：

     1. 选择**不同账户或区域中的事件总线**。

     1. 对于**事件总线作为目标**，请输入要使用的事件总线的 ARN。

        有关更多信息，请参阅: 
        + [在 Amazon AWS 账户之间发送和接收事件 EventBridge](eb-cross-account.md)
        + [在 Amazon 的 AWS 区域之间发送和接收事件 EventBridge](eb-cross-region.md)

------
#### [ API destination ]

   要使用 EventBridge API 目标，请选择 **EventBridge API 目标**，然后执行以下任一操作：
   + 要使用现有 API 目标，请选择**使用现有 API 目标**。然后从下拉列表中选择 API 目标。
   + 要创建新的 API 目标，请选择**创建新的 API 目标**。然后为目标提供以下详细信息：
     + **名称** - 为目标键入一个名称。

       名称在您的 AWS 账户内必须是唯一的。名称最多可以包含 64 个字符。有效字符为 **A-Z**、**a-z**、**0-9** 和 **.** **\$1** **-**（连字符）。
     + （可选）**描述** - 输入目标的描述。

       描述最多可包含 512 个字符。
     + **API 目标端点** - 目标的 URL 端点。

       端点 URL 必须以 **https** 开头。可以将 **\$1** 作为路径参数通配符包括在其中。您可以根据目标的 `HttpParameters` 属性设置路径参数。
     + **HTTP 方法** - 选择调用端点时使用的 HTTP 方法。
     + （可选）**每秒调用速率限制** - 输入该目标每秒可接受的调用次数上限。

       该值必须大于零。默认情况下，该值设为 300。
     + **连接** - 选择使用新连接或现有连接：
       + 要使用现有连接，请选择**使用现有连接**，然后从下拉列表中选择连接。
       + 要为此目标创建新连接，请选择**创建新连接**，然后定义连接的**名称**、**目标类型**和**授权类型**。您还可以为此连接添加可选**描述**。

   有关更多信息，请参阅 [API 目的地作为亚马逊的目标 EventBridge](eb-api-destinations.md)。

------
#### [ AWS 服务 ]

   要使用 AWS 服务，请选择 **AWS 服务**，然后执行以下操作：

   1. 在**选择目标**中，选择一个 AWS 服务 用作目标。为所选服务提供所需的信息。
**注意**  
显示的字段因所选服务而异。有关可用目标的更多信息，请参阅 [EventBridge 控制台中提供事件总线目标](eb-targets.md#eb-console-targets)。

------

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

   对于**执行角色**，请执行以下任一操作：
   + 为此规则创建新的执行角色：

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

     1. 要么输入此执行角色的名称，要么使用生成的名称 EventBridge。
   + 为此规则使用现有执行角色：

     1. 选择**使用现有角色**。

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

1. （可选）对于**其他设置**，请指定适用于您的目标类型的任何可选设置：

------
#### [ Event bus ]

   （可选）对于**死信队列**，选择是否使用标准的 Amazon SQS 队列作为死信队列。 EventBridge 如果匹配此规则的事件未成功传送到目标，则将其发送到死信队列。请执行以下操作之一：
   + 选择**无**不使用死信队列。
   + 在当前 AWS 帐户中选择**选择一个Amazon SQS队列用作死信队列**，然后从下拉列表中选择要使用的队列。
   + 选择**在其他 Amazon SQS 队列中选择其他队列 AWS 帐户作为死信队列**，然后输入要使用的队列的 ARN。您必须将基于资源的策略附加到队列，以授予向该队列发送消息的 EventBridge权限。

     有关更多信息，请参阅 [为死信队列授予权限](eb-rule-dlq.md#eb-dlq-perms)。

------
#### [ API destination ]

   1. （可选）在配置目标输入中，选择针对匹配的事件，要如何自定义发送到目标的文本。选择下列选项之一：
      + **匹配的事件**- EventBridge 将整个原始源事件发送到目标。这是默认值。
      + **匹配事件的一部分** — EventBridge 仅将原始源事件的指定部分发送到目标。

        **在 “指定匹配事件的部分**” 下，指定一个 JSON 路径，该路径定义了要发送 EventBridge 到目标的事件部分。
      + **常量（JSON 文本）**-仅 EventBridge 向目标发送指定的 JSON 文本。不会发送原始源事件的任何部分。

        **在 “在 JSON 中指定常量**” 下，指定要发送 EventBridge 到目标而不是事件的 JSON 文本。
      + **输入转换器**-配置输入转换器以自定义要 EventBridge 发送到目标的文本。有关更多信息，请参阅 [亚马逊 EventBridge 输入转换](eb-transform-target-input.md)。

        1. 选择**配置输入转换器**。

        1. 按照[在中创建规则时配置输入变压器 EventBridge](eb-transform-input-rule.md)中的步骤配置输入转换器。

   1. （可选）在 “**重试策略**” 下，指定发生错误后 EventBridge 应如何重试向目标发送事件。
      + **事件的最大**持续时间-输入保留未处理事件的最大时间（ EventBridge 以小时、分钟和秒为单位）。默认为 24 小时。
      + **重试尝试**-输入发生错误后重试向目标发送事件的最大次 EventBridge 数。默认为 185 次。

   1. （可选）对于**死信队列**，选择是否使用标准的 Amazon SQS 队列作为死信队列。 EventBridge 如果匹配此规则的事件未成功传送到目标，则将其发送到死信队列。请执行以下操作之一：
      + 选择**无**不使用死信队列。
      + **在当前 AWS 账户中选择要用作死信队列的 Amazon SQS 队列**，然后从下拉列表中选择要使用的队列。
      + 选择**在其他 Amazon SQS 队列中选择其他队列 AWS 帐户作为死信队列**，然后输入要使用的队列的 ARN。您必须将基于资源的策略附加到队列，以授予向该队列发送消息的 EventBridge 权限。

        有关更多信息，请参阅 [为死信队列授予权限](eb-rule-dlq.md#eb-dlq-perms)。

------
#### [ AWS service ]

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

   1. （可选）在配置目标输入中，选择针对匹配的事件，要如何自定义发送到目标的文本。选择下列选项之一：
      + **匹配的事件**- EventBridge 将整个原始源事件发送到目标。这是默认值。
      + **匹配事件的一部分** — EventBridge 仅将原始源事件的指定部分发送到目标。

        **在 “指定匹配事件的部分**” 下，指定一个 JSON 路径，该路径定义了要发送 EventBridge 到目标的事件部分。
      + **常量（JSON 文本）**-仅 EventBridge 向目标发送指定的 JSON 文本。不会发送原始源事件的任何部分。

        **在 “在 JSON 中指定常量**” 下，指定要发送 EventBridge 到目标而不是事件的 JSON 文本。
      + **输入转换器**-配置输入转换器以自定义要 EventBridge 发送到目标的文本。有关更多信息，请参阅 [亚马逊 EventBridge 输入转换](eb-transform-target-input.md)。

        1. 选择**配置输入转换器**。

        1. 按照[在中创建规则时配置输入变压器 EventBridge](eb-transform-input-rule.md)中的步骤配置输入转换器。

   1. （可选）在 “**重试策略**” 下，指定发生错误后 EventBridge 应如何重试向目标发送事件。
      + **事件的最大**持续时间-输入保留未处理事件的最大时间（ EventBridge 以小时、分钟和秒为单位）。默认为 24 小时。
      + **重试尝试**-输入发生错误后重试向目标发送事件的最大次 EventBridge 数。默认为 185 次。

   1. （可选）对于**死信队列**，选择是否使用标准的 Amazon SQS 队列作为死信队列。 EventBridge 如果匹配此规则的事件未成功传送到目标，则将其发送到死信队列。请执行以下操作之一：
      + 选择**无**不使用死信队列。
      + **在当前 AWS 账户中选择要用作死信队列的 Amazon SQS 队列**，然后从下拉列表中选择要使用的队列。
      + 选择**在其他 Amazon SQS 队列中选择其他队列 AWS 帐户作为死信队列**，然后输入要使用的队列的 ARN。您必须将基于资源的策略附加到队列，以授予向该队列发送消息的 EventBridge 权限。

        有关更多信息，请参阅 [为死信队列授予权限](eb-rule-dlq.md#eb-dlq-perms)。

------

1. （可选）选择 **Add another target**（添加其他目标），以为此规则添加其他目标。

1. 选择**下一步**。

### 配置标签并检查规则
<a name="eb-create-scheduled-rule-review"></a>

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

**配置标签，检查并创建规则**

1. （可选）为规则输入一个或多个标签。有关更多信息，请参阅 [在 Amazon 中为资源添加标签 EventBridge](eb-tagging.md)。

1. 选择**下一步**。

1. 检查新规则的详细信息。要对任何部分进行更改，请选择该部分旁边的**编辑**按钮。

   对规则详情感到满意后，选择**创建规则**。