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

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

Amazon EventBridge Pipes 目标

您可以将管道中的数据发送到特定目标。在 EventBridge 中设置管道时,您可以配置以下目标:

目标参数

有些目标服务不会将事件负载发送给目标,而是将事件视为调用特定 API 的触发器。EventBridge 使用 PipeTargetParameters 指定向 API 发送哪些信息。这些功能包括:

注意

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

  • 点表示法(例如 $.detail

  • 短划线

  • 下划线

  • 字母数字字符

  • 数组索引

  • 通配符 (*)

动态路径参数

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

动态语法可用于所有 EventBridge Pipes 富集和目标参数的所有字符串、非枚举字段,但以下参数除外:

例如,要将管道 Kinesis 目标的 PartitionKey 设置为源事件中的自定义密钥,请将 KinesisTargetParameter.PartitionKey 设置为:

  • "$.data.someKey",适用于 Kinesis 源

  • "$.body.someKey",适用于 Amazon SQS 源

然后,如果事件负载是有效的 JSON 字符串,例如 {"someKey":"someValue"},EventBridge 会从 JSON 路径中提取该值并将其用作目标参数。在此示例中,EventBridge 会将 Kinesis PartitionKey 设置为 "someValue"。

权限

为了对您拥有的资源执行 API 调用,EventBridge Pipes 需要相应权限。EventBridge Pipes 将您在管道中指定的 IAM 角色用于富集,将 IAM 主体 pipes.amazonaws.com 用于目标调用。

调用目标

EventBridge 具有以下方法用于调用目标:

  • 同步(调用类型设置为 REQUEST_RESPONSE)- EventBridge 在继续操作之前等待目标的响应。

  • 异步(调用类型设置为 FIRE_AND_FORGET)- EventBridge 不会等待收到响应后再继续操作。

默认情况下,对于排序源的管道,EventBridge 会同步调用目标,因为在继续处理下一事件之前需要目标的响应。

如果某个源不强制执行排序(例如标准 Amazon SQS 队列),EventBridge 可以同步或异步调用支持的目标。

使用 Lambda 函数和 Step Functions 状态机,您可以配置调用类型。

注意

对于 Step Functions 状态机,必须异步调用标准工作流程

EventBridge Pipes 目标的具体信息

Amazon Batch 作业队列

所有 Amazon Batch submitJob 参数都使用 BatchParameters 显式配置,与所有 Pipe 参数一样,这些参数可以使用传入事件负载的 JSON 路径进行动态配置。

CloudWatch 日志组

无论您是否使用输入转换器,事件负载都将用作日志消息。您可以通过 PipeTarget 中的 CloudWatchLogsParameters 设置 Timestamp(或目标的显式 LogStreamName)。与所有管道参数一样,这些参数可以使用传入事件负载的 JSON 路径进行动态配置。

Amazon ECS 任务

所有 Amazon ECS runTask 参数都是通过 EcsParameters 显式配置的。与所有管道参数一样,这些参数可以使用传入事件负载的 JSON 路径进行动态配置。

Lambda 函数和 Step Functions 工作流程

Lambda 和 Step Functions 没有批处理 API。要处理来自管道源的事件批次,批次将转换为 JSON 数组,并作为输入传递给 Lambda 或 Step Functions 目标。有关更多信息,请参阅Amazon Pip EventBridge es 批处理和并发