亚马逊的 EventBridge 目标 - 亚马逊 EventBridge
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

亚马逊的 EventBridge 目标

目标是一种资源或端点,当事件与为规则定义的事件模式匹配时,它会将事件 EventBridge 发送到该资源或端点。该规则处理事件数据并将相关信息发送到目标。要将事件数据传送到目标, EventBridge 需要访问目标资源的权限。您可以为每条规则定义最多 5 个目标。

当您将目标添加到规则并在不久之后运行该规则时,可能不会立即调用任何新的或更新的目标。请稍等片刻,以便更改生效。

以下视频涵盖了目标的基础知识:

EventBridge 控制台中可用的目标

您可以在 EventBridge 控制台中为事件配置以下目标:

目标参数

有些目标不会将事件负载中的信息发送给目标,而是将事件视为调用特定 API 的触发器。 EventBridge 使用目标参数来确定该目标会发生什么。这些功能包括:

  • API 目标(发送到 API 目标的数据必须与 API 的结构相匹配。 您必须使用该InputTransformer对象来确保数据的结构正确。 如果要包含原始事件负载,请在中引用它InputTransformer。)

  • API Gateway(发送到 API Gateway 的数据必须与 API 的结构相匹配。 您必须使用该InputTransformer对象来确保数据的结构正确。 如果要包含原始事件负载,请在中引用它InputTransformer。)

  • Amazon EC2 Image Builder

  • RedshiftDataParameters(Amazon Redshift ft 数据 API 集群)

  • SageMakerPipelineParameters(亚马逊建 SageMaker 模管道)

注意

EventBridge 不支持所有 JSON 路径语法并在运行时对其进行评估。支持的语法包括:

  • 点符号(例如,$.detail

  • 猛冲

  • 下划线

  • 字母数字字符

  • 数组索引

  • 通配符 (*)

动态路径参数

一些目标参数支持可选的动态 JSON 路径语法。此语法允许您指定 JSON 路径而不是静态值(例如$.detail.state)。整个值必须是 JSON 路径,而不仅仅是其中的一部分。例如,RedshiftParameters.Sql可以$.detail.state但不可能"SELECT * FROM $.detail.state"。这些路径在运行时被来自指定路径的事件负载本身的数据动态替换。动态路径参数无法引用输入转换产生的新值或变换后的值。动态参数 JSON 路径支持的语法与转换输入时的语法相同。有关更多信息,请参阅 亚马逊 EventBridge 输入转换

动态语法可用于以下参数的所有字符串、非枚举字段:

权限

要对您拥有的资源执行 API 调用, EventBridge 需要相应权限。对于Amazon Lambda和 Amazon SNS 资源, EventBridge 使用基于资源的策略。对于 EC2 实例、Kinesis 数据流和 Step Functions ep Funcons 状态机, EventBridge 使用您在RoleARN参数中指定的 IAM 角色PutTargets。您可以使用配置的 IAM 授权调用 API Gateway 终端节点,但如果您尚未配置授权,则该角色是可选的。有关更多信息,请参阅亚马逊 EventBridge 和Amazon Identity and Access Management

如果另一个账户在同一区域并且已授予您权限,那么您可以向该账户发送事件。有关更多信息,请参阅在Amazon账户之间发送和接收亚马逊 EventBridge 事件

如果目标已加密,您必须在 KMS 密钥策略中包含以下部分。

{ "Sid": "Allow EventBridge to use the key", "Effect": "Allow", "Principal": { "Service": "events.amazonaws.com" }, "Action": [ "kms:Decrypt", "kms:GenerateDataKey" ], "Resource": "*" }

EventBridge 目标细节

Amazon Batch作业队列

的某些参数Amazon BatchsubmitJob可以通过进行配置BatchParameters

其他可以在事件负载中指定。如果事件负载(通过或通过 InputTransformers)包含以下密钥,则它们将映射到submitJob请求参数

  • ContainerOverrides: containerOverrides

    注意

    这仅包括命令、环境、内存和 vcpu

  • DependsOn: dependsOn

    注意

    这仅包括 jobId

  • Parameters: parameters

CloudWatch 日志组

如果您不使用InputTransformer带有 Lo CloudWatch gs 目标的,则事件负载将用作日志消息,将事件源用作时间戳。如果您确实使用了 InputTransformer,则模板必须是:

{"timestamp":<timestamp>,"message":<message>}

CodeBuild 项目

如果您使用InputTransformers将输入事件调整为目标以匹配 CodeBuild StartBuildRequest结构,则参数将以 1 比 1 映射并传递到codeBuild.StartBuild

Amazon ECS 任务

如果您使用InputTransformers将输入事件调整为目标以匹配 Amazon ECS RunTask TaskOverride结构,则参数将一对一映射并传递到ecs.RunTask

Incident Manager

如果匹配的事件来自 CloudWatch 警报,则警报状态更改详细信息将填充到 StartIncidentRequest 调用事件管理器的触发器详细信息中。