跳至内容

如何使用 Amazon MSK 部署 EventBridge 管道?

2 分钟阅读
0

我想使用 Amazon EventBridge 管道接收来自 Amazon Managed Streaming for Apache Kafka (Amazon MSK) 主题的记录。

解决方案

**注意:**有关 Amazon MSK 以及如何创建集群的详细信息,请参阅开始使用 Amazon MSK

先决条件

使用 Amazon MSK 部署 EventBridge 管道

完成以下步骤:

  1. 导航到相应 AWS 区域中的 EventBridge 控制台
  2. 在导航面板中,选择 Pipes(管道)。
  3. 选择 Create pipe(创建管道)。
  4. 输入管道的名称。
  5. (可选)输入管道的描述。

选择 Amazon MSK 作为管道的源

完成以下步骤:

  1. 对于 Select source(选择源),选择 Amazon MSK
  2. 选择您之前创建的 Amazon MSK 集群。
  3. 输入用于在 Apache Kafka 集群中存储记录的 Apache Kafka 主题的名称。
  4. (可选)提供要加入的 Apache Kafka 使用者组的 ID。有关详细信息,请参阅 EventBridge 管道中作为源的 Amazon Managed Streaming for Apache Kafka 主题
  5. (可选)选择身份验证方法和密钥。

应用其他设置

完成以下步骤:

  1. (可选)配置 Batch size(批处理大小)和 batch window(批处理窗口)。
  2. 配置 starting position(起始位置)。
    **注意:**对于起始位置,默认设置为 latest(最新)。如果需要,请更改为 **Trim horizon(修剪水平线)。**对于 Apache Kafka,Trim horizon(修剪水平线)与 Earliest(最早)相同。
  3. (可选)应用 Filtering(筛选)和 Enrichment(扩展)的设置。
  4. Target service(目标服务)列表中选择您的目标。
  5. (可选)定义输入转换器
  6. 确认管道配置正确。然后,选择 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 管道

AWS 官方已更新 1 年前