我想使用 Amazon EventBridge 管道接收来自 Amazon Managed Streaming for Apache Kafka (Amazon MSK) 主题的记录。
解决方案
**注意:**有关 Amazon MSK 以及如何创建集群的详细信息,请参阅开始使用 Amazon MSK。
先决条件
- MSK 集群身份验证:EventBridge 必须拥有访问 MSK 集群、检索记录以及执行其他任务的权限。
- 网络配置:EventBridge 必须有权访问与您的 MSK 集群关联的 Amazon Virtual Private Cloud (Amazon VPC) 资源。
- Amazon MSK 执行角色权限:EventBridge 需要权限来管理与您的 MSK 主题相关的资源。
使用 Amazon MSK 部署 EventBridge 管道
完成以下步骤:
- 导航到相应 AWS 区域中的 EventBridge 控制台。
- 在导航面板中,选择 Pipes(管道)。
- 选择 Create pipe(创建管道)。
- 输入管道的名称。
- (可选)输入管道的描述。
选择 Amazon MSK 作为管道的源
完成以下步骤:
- 对于 Select source(选择源),选择 Amazon MSK。
- 选择您之前创建的 Amazon MSK 集群。
- 输入用于在 Apache Kafka 集群中存储记录的 Apache Kafka 主题的名称。
- (可选)提供要加入的 Apache Kafka 使用者组的 ID。有关详细信息,请参阅 EventBridge 管道中作为源的 Amazon Managed Streaming for Apache Kafka 主题。
- (可选)选择身份验证方法和密钥。
应用其他设置
完成以下步骤:
- (可选)配置 Batch size(批处理大小)和 batch window(批处理窗口)。
- 配置 starting position(起始位置)。
**注意:**对于起始位置,默认设置为 latest(最新)。如果需要,请更改为 **Trim horizon(修剪水平线)。**对于 Apache Kafka,Trim horizon(修剪水平线)与 Earliest(最早)相同。
- (可选)应用 Filtering(筛选)和 Enrichment(扩展)的设置。
- 从 Target service(目标服务)列表中选择您的目标。
- (可选)定义输入转换器。
- 确认管道配置正确。然后,选择 Create pipe(创建管道)。
当管道转换为 Running(正在运行)状态时,EventBridge 会在内部轮询来自源的新消息。然后,它会同步调用目标。
**注意:**事件有效载荷包含一个消息数组。每个项目都包含 MSK 主题和 MSK 分区标识符的详细信息,以及时间戳和 base64 编码的消息。
以下是 MSK 事件示例:
[ {
"eventSource": "aws:kafka",
"eventSourceArn": "arn:aws:kafka:sa-east-1:123456789012:cluster/vpc-2priv-2pub/751d2973-a626-431c-9d4e-d7975eb44dd7-2",
"eventSourceKey": "mytopic-0",
"topic": "mytopic",
"partition": "0",
"offset": 15,
"timestamp": 1545084650987,
"timestampType": "CREATE_TIME",
"key": "abcDEFghiJKLmnoPQRstuVWXyz1234==",
"value": "SGVsbG8sIHRoaXMgaXMgYSB0ZXN0Lg==",
"headers": [
{
"headerKey": [
104,
101,
97,
100,
101,
114,
86,
97,
108,
117,
101
]
}
]
}
]
对调用相关错误进行故障排除
在管道所在的相应区域中,通过 CloudWatch 控制台使用 Amazon CloudWatch 指标来隔离与激活、调用或节流相关的问题。
创建、删除和更新管道时,操作可能会导致故障状态。有关详细信息,请参阅 Pipe failure states。
调用管道时,可能会发生两种主要类型的错误:管道内部错误或客户调用错误。
如果 HTTP 连接在尝试调用客户目标服务时失败,则可能会发生管道内部错误。或者,如果管道服务本身出现短暂的可用性下降,也可能会发生此错误。
如果管道上没有足够的权限来调用目标,则可能会发生客户调用错误。或者,如果您同步调用的客户 AWS Lambda、AWS Step Functions、API 目标或 Amazon API Gateway 端点中存在逻辑错误,也可能会发生此错误。有关详细信息,请参阅权限。
EventBridge 管道不支持跨账户处理来自不同账户的 Amazon MQ 代理。有关详细信息,请参阅 Amazon EventBridge Pipes error handling and troubleshooting。
相关信息
创建 Amazon EventBridge 管道