

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

# 创建可对 Amazon 中的事件做出反应的规则 EventBridge
<a name="eb-create-rule-wizard"></a>

要对 Amazon 收到的事件采取行动 EventBridge，您可以创建[规则](eb-rules.md)。当事件与规则中定义[的事件模式](eb-event-patterns.md)相匹配时， EventBridge 会将该事件发送到指定的[目标](eb-targets.md)并触发规则中定义的操作。

以下步骤将引导您完成如何创建规则，该规则 EventBridge 用于在将事件发送到指定事件总线时进行匹配。

**Topics**
+ [定义规则](#eb-create-rule-define)
+ [构建事件模式](#eb-create-rule-event-pattern)
+ [选择目标](#eb-create-rule-target)
+ [配置标签并检查规则](#eb-create-rule-review)

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

首先，为您的规则输入用于标识它的名称和描述。您还必须定义事件总线，您的规则将在其中查找与事件模式匹配的事件。

**定义规则细节**

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

1. 在导航窗格中，选择**规则**。

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

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

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

1. 对于**事件总线**，请选择要与此规则关联的事件总线。如果您希望此规则对来自您自己的账户的匹配事件触发，请选择 **Amazon 默认事件总线**。当你账户 Amazon Web Services 服务 中的某人发出事件时，它总是会转到你账户的默认事件总线。

1. 对于**规则类型**，选择**具有事件模式的规则**。

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

## 构建事件模式
<a name="eb-create-rule-event-pattern"></a>

接下来构建事件模式 方法是指定事件源，选择事件模式的基础，然后定义要匹配的属性和值。您也可以生成 JSON 格式的事件模式，并针对示例事件对其进行测试。

**构建事件模式**

1. 对于**事件来源**，选择**Amazon 事件或 EventBridge合作伙伴事件**。

1. （可选）在**示例事件**部分，选择要测试事件模式的**示例事件类型**。

   提供以下示例事件类型：
   + **Amazon 事件**-从支持 Amazon Web Services 服务的事件中进行选择。
   + **EventBridge 合作伙伴活动**-从支持的 EventBridge第三方服务（例如 Salesforce）发出的事件中进行选择。
   + **输入我自己的** - 以 JSON 文本输入您自己的事件。

     您也可以使用 Amazon 或合作伙伴事件作为创建自己的自定义事件的起点。

     1. 选择**Amazon 活动**或**EventBridge 合作伙伴活动**。

     1. 使用**示例事件**下拉列表，选择要用作自定义事件起点的事件。

        EventBridge 显示示例事件。

     1. 选择 **复制**。

     1. 选择**输入我自己的**作为**事件类型**。

     1. 在 JSON 编辑窗格中删除示例事件结构，然后将 Amazon 或合作伙伴事件粘贴到原处。

     1. 编辑事件 JSON，创建您自己的示例事件。

1. 选择**创建方法**。您可以根据 EventBridge 架构或模板创建事件模式，也可以创建自定义事件模式。

------
#### [ Existing schema ]

   要使用现有 EventBridge 架构创建事件模式，请执行以下操作：

   1. 在**创建方法**部分的**方法**中，选择**使用架构**。

   1. 在**事件模式**部分的**架构类型**中，选择**从架构注册表中选择架构**。

   1. 对于**架构注册表**，选择下拉框并输入架构注册表的名称，例如 `aws.events`。您还可以从出现的下拉列表中选择一个选项。

   1. 对于**架构**，选择下拉框并输入要使用的架构的名称。例如 `aws.s3@ObjectDeleted`。您还可以从出现的下拉列表中选择一个选项。

   1. 在**模型**部分，选择任意属性旁边的**编辑**按钮，可打开其属性。根据需要设置**关系**和**值**字段，然后选择**设置**保存属性。
**注意**  
有关属性定义的信息，请选择属性名称旁边的**信息**图标。有关如何在事件中设置属性的参考，请打开属性对话框的**注释**部分。  
要删除某一属性的特性，请选择该属性的**编辑**按钮，然后选择**清除**。

   1. 选择**以 JSON 格式生成事件模式**，作为 JSON 文本生成并验证您的事件模式。

   1. （可选）要根据您的事件模式测试示例事件，请选择**测试模式**。

      EventBridge 显示一个消息框，说明您的示例事件是否与事件模式匹配。

      您还可以选择以下任何选项：
      + **复制** - 将事件模式复制到设备的剪贴板。
      + **修饰** - 添加换行符、制表符和空格，使 JSON 文本更易于阅读。

------
#### [ Custom schema ]

   要编写自定义架构并将其转换为事件模式，请执行以下操作：

   1. 在**创建方法**部分的**方法**中，选择**使用架构**。

   1. 在**事件模式**部分的**架构类型**中，选择**输入架构**。

   1. 在文本框中输入您的架构。您必须将架构格式化为有效的 JSON 文本。

   1. 在**模型**部分，选择任意属性旁边的**编辑**按钮，可打开其属性。根据需要设置**关系**和**值**字段，然后选择**设置**保存属性。
**注意**  
有关属性定义的信息，请选择属性名称旁边的**信息**图标。有关如何在事件中设置属性的参考，请打开属性对话框的**注释**部分。  
要删除某一属性的特性，请选择该属性的**编辑**按钮，然后选择**清除**。

   1. 选择**以 JSON 格式生成事件模式**，作为 JSON 文本生成并验证您的事件模式。

   1. （可选）要根据您的事件模式测试示例事件，请选择**测试模式**。

      EventBridge 显示一个消息框，说明您的示例事件是否与事件模式匹配。

      您还可以选择以下任何选项：
      + **复制** - 将事件模式复制到设备的剪贴板。
      + **修饰** - 添加换行符、制表符和空格，使 JSON 文本更易于阅读。

------
#### [ Event pattern ]

   要以 JSON 格式编写自定义事件模式，请执行以下操作：

   1. 在**创建方法**部分的**方法**中，选择**自定义模式（JSON 编辑器）**。

   1. 在**事件模式**中，以 JSON 格式的文本输入您的自定义事件模式。

   1. （可选）要根据您的事件模式测试示例事件，请选择**测试模式**。

      EventBridge 显示一个消息框，说明您的示例事件是否与事件模式匹配。

      您还可以选择以下任何选项：
      + **复制** - 将事件模式复制到设备的剪贴板。
      + **修饰** - 添加换行符、制表符和空格，使 JSON 文本更易于阅读。
      + **事件模式表单** - 在模式生成器中打开事件模式。如果无法在模式生成器中按原样渲染图案，则会在模式生成器打开模式生成器之前 EventBridge 发出警告。

------

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

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

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

**选择目标**

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

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

   1. 选择**EventBridge 活动总线**。

   1. 选择要用作目标的事件总线。
      + 要使用与此规则相同 Amazon Web Services 区域 的事件总线，请执行以下操作：

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

   1. 选择 **EventBridge API 目的地**。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

------
#### [ Amazon Web Services 服务 ]

   1. 选择 **Amazon Web Services 服务**。

   1. 在**选择目标**中，选择一个 Amazon Web Services 服务 用作目标。

   1. 如果您选择支持跨账户定位的 Amazon 服务，则可以选择与事件总线相同的账户中的目标，也可以选择其他账户。
      + 对于同一账户中的目标，在**目标类型**中选择**此账户中的目标**。

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

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

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

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

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

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

             1. 输入要使用的执行角色的名称，或从下拉列表中选择。
      + 对于其他账户中的目标，请在 “**目标类型**” 中选择 “**其他 Amazon 账户中的目标**”。

        1. 输入要将事件发送到的目标资源的 ARN。

        1. 为所选服务提供要求补充的其他相关信息。

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

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

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

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

------

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

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

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

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

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

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

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

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

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