在 Amazon EventBridge 中创建对事件作出反应的规则
要对 Amazon EventBridge 收到的事件执行操作,您可以创建规则。当事件匹配规则中定义的事件模式时,EventBridge 会将事件发送到指定的目标,并触发规则中定义的操作。
以下视频探讨了如何创建不同类型的规则,以及如何对其进行测试:
以下步骤将引导您完成创建规则的过程,当事件发送到指定事件总线时,EventBridge 使用该规则来匹配事件。
定义规则
首先,为您的规则输入用于标识它的名称和描述。您还必须定义事件总线,您的规则将在其中查找与事件模式匹配的事件。
定义规则细节
打开位于 https://console.aws.amazon.com/events/
的 Amazon EventBridge 控制台。 -
在导航窗格中,选择规则。
-
选择创建规则。
-
输入规则的名称和可选描述。
规则不能与同一 Amazon Web Services 区域中和同一事件总线上的另一条规则的名称相同。
-
对于事件总线,请选择要与此规则关联的事件总线。如果您希望此规则对来自您自己的账户的匹配事件触发,请选择 Amazon 默认事件总线。当您账户中的某个 Amazon Web Services 服务发出一个事件时,它始终会发送到您账户的默认事件总线。
-
对于规则类型,选择具有事件模式的规则。
-
选择下一步。
构建事件模式
接下来构建事件模式 方法是指定事件源,选择事件模式的基础,然后定义要匹配的属性和值。您也可以生成 JSON 格式的事件模式,并针对示例事件对其进行测试。
构建事件模式
-
对于事件源,选择 Amazon 事件或 EventBridge 合作伙伴事件。
-
(可选)在示例事件部分,选择要测试事件模式的示例事件类型。
提供以下示例事件类型:
-
Amazon 事件 - 从支持的 Amazon Web Services 服务发出的事件中进行选择。
-
EventBridge 合作伙伴事件 - 从支持 EventBridge 的第三方服务(例如 Salesforce)发出的事件中进行选择。
-
输入我自己的 - 以 JSON 文本输入您自己的事件。
您也可以使用 Amazon 或合作伙伴事件作为创建自定义事件的起点。
选择 Amazon 事件或 EventBridge 合作伙伴事件。
使用示例事件下拉列表,选择要用作自定义事件起点的事件。
EventBridge 显示此示例事件。
选择 复制。
选择输入我自己的作为事件类型。
在 JSON 编辑窗格中删除示例事件结构,然后将 Amazon 或合作伙伴事件粘贴到此处。
编辑事件 JSON,创建您自己的示例事件。
-
-
选择创建方法。您可以根据 EventBridge 架构或模板创建事件模式,也可以创建自定义事件模式。
- Existing schema
-
要使用现有 EventBridge 架构创建事件模式,请执行以下操作:
-
在创建方法部分的方法中,选择使用架构。
-
在事件模式部分的架构类型中,选择从架构注册表中选择架构。
-
对于架构注册表,选择下拉框并输入架构注册表的名称,例如
aws.events。您还可以从出现的下拉列表中选择一个选项。 -
对于架构,选择下拉框并输入要使用的架构的名称。例如
aws.s3@ObjectDeleted。您还可以从出现的下拉列表中选择一个选项。 -
在模型部分,选择任意属性旁边的编辑按钮,可打开其属性。根据需要设置关系和值字段,然后选择设置保存属性。
注意
有关属性定义的信息,请选择属性名称旁边的信息图标。有关如何在事件中设置属性的参考,请打开属性对话框的注释部分。
要删除某一属性的特性,请选择该属性的编辑按钮,然后选择清除。
-
选择以 JSON 格式生成事件模式,作为 JSON 文本生成并验证您的事件模式。
-
(可选)要根据您的事件模式测试示例事件,请选择测试模式。
EventBridge 会显示一个消息框,说明您的示例事件是否与事件模式匹配。
您还可以选择以下任何选项:
-
复制 - 将事件模式复制到设备的剪贴板。
-
修饰 - 添加换行符、制表符和空格,使 JSON 文本更易于阅读。
-
-
- Custom schema
-
要编写自定义架构并将其转换为事件模式,请执行以下操作:
-
在创建方法部分的方法中,选择使用架构。
-
在事件模式部分的架构类型中,选择输入架构。
-
在文本框中输入您的架构。您必须将架构格式化为有效的 JSON 文本。
-
在模型部分,选择任意属性旁边的编辑按钮,可打开其属性。根据需要设置关系和值字段,然后选择设置保存属性。
注意
有关属性定义的信息,请选择属性名称旁边的信息图标。有关如何在事件中设置属性的参考,请打开属性对话框的注释部分。
要删除某一属性的特性,请选择该属性的编辑按钮,然后选择清除。
-
选择以 JSON 格式生成事件模式,作为 JSON 文本生成并验证您的事件模式。
-
(可选)要根据您的事件模式测试示例事件,请选择测试模式。
EventBridge 会显示一个消息框,说明您的示例事件是否与事件模式匹配。
您还可以选择以下任何选项:
-
复制 - 将事件模式复制到设备的剪贴板。
-
修饰 - 添加换行符、制表符和空格,使 JSON 文本更易于阅读。
-
-
- Event pattern
-
要以 JSON 格式编写自定义事件模式,请执行以下操作:
-
在创建方法部分的方法中,选择自定义模式(JSON 编辑器)。
-
在事件模式中,以 JSON 格式的文本输入您的自定义事件模式。
-
(可选)要根据您的事件模式测试示例事件,请选择测试模式。
EventBridge 会显示一个消息框,说明您的示例事件是否与事件模式匹配。
您还可以选择以下任何选项:
-
复制 - 将事件模式复制到设备的剪贴板。
-
修饰 - 添加换行符、制表符和空格,使 JSON 文本更易于阅读。
-
事件模式表单 - 在模式生成器中打开事件模式。如果此模式无法在模式生成器中按原样渲染,EventBridge 会在打开模式生成器之前向您发出警告。
-
-
-
选择下一步。
选择目标
选择一个或多个目标,接收与指定模式匹配的事件。目标可以包括 EventBridge 事件总线、EventBridge API 目标(包括 Salesforce 等 SaaS 合作伙伴或另一 Amazon Web Services 服务)。
选择目标
-
对于目标类型,请选择以下目标类型之一:
- Event bus
-
选择 EventBridge 事件总线。
选择要用作目标的事件总线。
-
使用与此规则位于同一 Amazon Web Services 区域的事件总线:
选择同一账户和区域中的事件总线。
对于目标的事件总线,选择下拉框并输入事件总线的名称。您也可以从下拉列表中选择事件总线。
有关更多信息,请参阅 在 Amazon EventBridge 的同一账户和区域中的事件总线之间发送事件。
-
使用与此规则不同的 Amazon Web Services 区域 或账户中的事件总线:
选择不同账户或区域中的事件总线。
对于事件总线作为目标,请输入要使用的事件总线的 ARN。
有关更多信息,请参阅:
-
-
对于许多目标类型,EventBridge 需要权限以便将事件发送到目标。在这些情况下,EventBridge 可以创建运行事件所需的 IAM 角色:
对于执行角色,请执行以下任一操作:
-
为此规则创建新的执行角色:
选择为此特定资源创建新角色。
输入此执行角色的名称,或使用 EventBridge 生成的名称。
-
为此规则使用现有执行角色:
选择使用现有角色。
输入要使用的执行角色的名称,或从下拉列表中选择。
-
-
(可选)对于其他设置,请指定适用于您的目标类型的任何可选设置:
(可选)对于死信队列,选择是否使用标准 Amazon SQS 队列作为死信队列。如果与此规则匹配的事件未成功传递到目标,EventBridge 会将这些事件发送到死信队列。请执行以下操作之一:
-
选择无不使用死信队列。
-
在当前 Amazon 帐户中选择选择一个Amazon SQS队列用作死信队列,然后从下拉列表中选择要使用的队列。
-
选择在其他 Amazon SQS 队列中选择其他队列 Amazon 帐户作为死信队列,然后输入要使用的队列的 ARN。您必须将基于资源的策略附加到队列,以授予 EventBridge 向其发送消息的权限。
有关更多信息,请参阅 为死信队列授予权限。
-
- API destination
-
选择 EventBridge API 目标。
选择新的或现有的 API 目标:
-
要使用现有 API 目标,请选择使用现有 API 目标。然后从下拉列表中选择 API 目标。
-
要创建新的 API 目标,请选择创建新的 API 目标。然后为目标提供以下详细信息:
-
名称 - 为目标键入一个名称。
名称在您的 Amazon Web Services 账户 内必须是唯一的。名称最多可以包含 64 个字符。有效字符为 A-Z、a-z、0-9 和 . _ -(连字符)。
-
(可选)描述 - 输入目标的描述。
描述最多可包含 512 个字符。
-
API 目标端点 - 目标的 URL 端点。
端点 URL 必须以
https开头。可以将*作为路径参数通配符包括在其中。您可以根据目标的HttpParameters属性设置路径参数。 -
HTTP 方法 - 选择调用端点时使用的 HTTP 方法。
-
(可选)每秒调用速率限制 - 输入该目标每秒可接受的调用次数上限。
该值必须大于零。默认情况下,该值设为 300。
-
连接 - 选择使用新连接或现有连接:
要使用现有连接,请选择使用现有连接,然后从下拉列表中选择连接。
要为此目标创建新连接,请选择创建新连接,然后定义连接的名称、目标类型和授权类型。您还可以为此连接添加可选描述。
-
-
-
对于许多目标类型,EventBridge 需要权限以便将事件发送到目标。在这些情况下,EventBridge 可以创建运行事件所需的 IAM 角色:
对于执行角色,请执行以下任一操作:
-
为此规则创建新的执行角色:
选择为此特定资源创建新角色。
输入此执行角色的名称,或使用 EventBridge 生成的名称。
-
为此规则使用现有执行角色:
选择使用现有角色。
输入要使用的执行角色的名称,或从下拉列表中选择。
-
-
(可选)对于其他设置,请指定适用于您的目标类型的任何可选设置:
请注意,EventBridge 可能不会显示特定 Amazon 服务的以下所有字段。
-
(可选)在配置目标输入中,选择针对匹配的事件,要如何自定义发送到目标的文本。选择下列选项之一:
-
匹配的事件 - EventBridge 会将整个原始源事件发送到目标。这是默认值。
-
部分匹配事件 - EventBridge 仅将原始源事件的指定部分发送到目标。
在指定部分匹配事件下,指定一个 JSON 路径,其中定义了您希望 EventBridge 发送到目标的事件部分。
-
常量 (JSON 文本) - EventBridge 仅向目标发送指定的 JSON 文本。不会发送原始源事件的任何部分。
在在 JSON 中指定常量下,指定您希望 EventBridge 发送到目标的 JSON 文本(而不是事件)。
-
输入转换器 - 配置输入转换器,自定义您希望 EventBridge 向目标发送的文本。有关更多信息,请参阅 Amazon EventBridge 输入转换。
-
选择配置输入转换器。
-
按照在 EventBridge 中创建规则时配置输入转换器中的步骤配置输入转换器。
-
-
-
(可选)在重试策略下,指定发生错误后 EventBridge 应如何重试向目标发送事件。
-
事件的最长保留时间 - 输入 EventBridge 保留未处理事件的时间上限(以小时、分钟和秒为单位)。默认为 24 小时。
-
重试次数 - 输入发生错误后,EventBridge 应重试向目标发送事件的次数上限。默认为 185 次。
-
-
(可选)对于死信队列,选择是否使用标准 Amazon SQS 队列作为死信队列。如果与此规则匹配的事件未成功传递到目标,EventBridge 会将这些事件发送到死信队列。请执行以下操作之一:
-
选择无不使用死信队列。
-
在当前 Amazon 帐户中选择选择一个Amazon SQS队列用作死信队列,然后从下拉列表中选择要使用的队列。
-
选择在其他 Amazon SQS 队列中选择其他队列 Amazon 帐户作为死信队列,然后输入要使用的队列的 ARN。您必须将基于资源的策略附加到队列,以授予 EventBridge 向其发送消息的权限。
有关更多信息,请参阅 为死信队列授予权限。
-
-
有关更多信息,请参阅 将 API 目标指定为 Amazon EventBridge 中的目标。
- Amazon Web Services 服务
-
选择 Amazon Web Services 服务。
-
在选择目标中,选择一个 Amazon Web Services 服务用作目标。
-
如果您选择支持跨账户目标的 Amazon 服务,则既可以选择与事件总线位于同一账户的目标,也可以选择其他账户中的目标。
对于同一账户中的目标,在目标类型中选择此账户中的目标。
为所选服务提供所需的信息。
注意
显示的字段因所选服务而异。有关可用目标的更多信息,请参阅 EventBridge 控制台中可用的事件总线目标。
-
对于许多目标类型,EventBridge 需要权限以便将事件发送到目标。在这些情况下,EventBridge 可以创建运行事件所需的 IAM 角色:
对于执行角色,请执行以下任一操作:
-
为此规则创建新的执行角色:
选择为此特定资源创建新角色。
输入此执行角色的名称,或使用 EventBridge 生成的名称。
-
为此规则使用现有执行角色:
选择使用现有角色。
输入要使用的执行角色的名称,或从下拉列表中选择。
-
对于其他账户中的目标,在目标类型中选择其他 Amazon 账户中的目标。
输入要将事件发送到的目标资源的 ARN。
为所选服务提供要求补充的其他相关信息。
从下拉列表中选择要使用的执行角色的名称。
-
(可选)对于其他设置,请指定适用于您的目标类型的任何可选设置:
-
(可选)在配置目标输入中,选择针对匹配的事件,要如何自定义发送到目标的文本。选择下列选项之一:
-
匹配的事件 - EventBridge 会将整个原始源事件发送到目标。这是默认值。
-
部分匹配事件 - EventBridge 仅将原始源事件的指定部分发送到目标。
在指定部分匹配事件下,指定一个 JSON 路径,其中定义了您希望 EventBridge 发送到目标的事件部分。
-
常量 (JSON 文本) - EventBridge 仅向目标发送指定的 JSON 文本。不会发送原始源事件的任何部分。
在在 JSON 中指定常量下,指定您希望 EventBridge 发送到目标的 JSON 文本(而不是事件)。
-
输入转换器 - 配置输入转换器,自定义您希望 EventBridge 向目标发送的文本。有关更多信息,请参阅 Amazon EventBridge 输入转换。
-
选择配置输入转换器。
-
按照在 EventBridge 中创建规则时配置输入转换器中的步骤配置输入转换器。
-
-
-
(可选)在重试策略下,指定发生错误后 EventBridge 应如何重试向目标发送事件。
-
事件的最长保留时间 - 输入 EventBridge 保留未处理事件的时间上限(以小时、分钟和秒为单位)。默认为 24 小时。
-
重试次数 - 输入发生错误后,EventBridge 应重试向目标发送事件的次数上限。默认为 185 次。
-
-
(可选)对于死信队列,选择是否使用标准 Amazon SQS 队列作为死信队列。如果与此规则匹配的事件未成功传递到目标,EventBridge 会将这些事件发送到死信队列。请执行以下操作之一:
-
选择无不使用死信队列。
-
在当前 Amazon 帐户中选择选择一个Amazon SQS队列用作死信队列,然后从下拉列表中选择要使用的队列。
-
选择在其他 Amazon SQS 队列中选择其他队列 Amazon 帐户作为死信队列,然后输入要使用的队列的 ARN。您必须将基于资源的策略附加到队列,以授予 EventBridge 向其发送消息的权限。
有关更多信息,请参阅 为死信队列授予权限。
-
-
-
(可选)选择 Add another target(添加其他目标),以为此规则添加其他目标。
-
选择下一步。
配置标签并检查规则
最后,为规则输入所需的任何标签,然后检查并创建规则。
配置标签,检查并创建规则
-
(可选)为规则输入一个或多个标签。有关更多信息,请参阅 在 Amazon EventBridge 中为资源添加标签。
-
选择下一步。
-
检查新规则的详细信息。要对任何部分进行更改,请选择该部分旁边的编辑按钮。
对规则详情感到满意后,选择创建规则。