纠正自托管式 Apache Kafka 事件源映射错误 - AWS Lambda

纠正自托管式 Apache Kafka 事件源映射错误

以下主题针对在使用自托管式 Apache Kafka 和 Lambda 时可能遇到的错误和问题提供了故障排除建议。如果您发现某个问题未在此处列出,可以使用此页上的 Feedback 按钮来报告。

有关故障排除的更多帮助,请访问 AWS 知识中心

身份验证和授权错误

如果缺少使用来自 Kafka 集群的数据所需的任何权限,Lambda 会在 LastProcessingResult 下的事件源映射中显示以下错误消息。

集群未能授权 Lambda

对于 SASL/SCRAM 或 mTLS,此错误表明提供的用户不具有以下所有必需的 Kafka 访问控制列表(ACL)权限:

  • DescribeConfigs 集群

  • 描述组

  • 读取组

  • 描述主题

  • 读取主题

当您使用所需的 kafka-cluster 权限创建 Kafka ACL 时,请将主题和组指定为资源。主题名称必须与事件源映射中的主题一致。组名称必须与事件源映射的 UUID 一致。

向执行角色添加所需的权限后,更改可能需要几分钟才会生效。

SASL 身份验证失败

对于 SASL/SCRAM 或 SASL/PLAIN,此错误表明提供的登录凭证无效。

服务器未能通过 Lambda 的身份验证

此错误表明 Kafka 代理未能对 Lambda 进行身份验证。出现此错误的可能原因如下:

  • 您没有为 mTLS 身份验证提供客户端证书。

  • 您提供了客户端证书,但未将 Kafka 代理配置为使用 mTLS 身份验证。

  • Kafka 代理不信任客户端证书。

Lambda 未能对服务器进行身份验证

此错误表明 Lambda 未能对 Kafka 代理进行身份验证。出现此错误的可能原因如下:

  • Kafka 代理使用自签名证书或私有 CA,但未提供服务器根 CA 证书。

  • 服务器根 CA 证书与签署代理证书的根 CA 不匹配。

  • 主机名验证失败,因为代理的证书未将该代理的 DNS 名称或 IP 地址用作主题替代名称。

提供的证书或私有密钥无效

此错误表明 Kafka 使用者无法使用提供的证书或私有密钥。确保证书和密钥使用 PEM 格式,并且私有密钥加密使用 PBES1 算法。

事件源映射错误

将 Apache Kafka 集群作为 Lambda 函数的事件源添加时,如果您的函数遇到错误,Kafka 使用者将停止处理记录。主题分区的使用者是那些订阅、阅读和处理记录的使用者。您的其他 Kafka 使用者可以继续处理记录,只要他们没有遇到同样的错误即可。

要确定使用者停止的原因,请检查 StateTransitionReason 响应中的 EventSourceMapping 字段。下表列出了您可能收到的事件源错误:

ESM_CONFIG_NOT_VALID

事件源映射配置无效。

EVENT_SOURCE_AUTHN_ERROR

Lambda 无法对事件源进行身份验证。

EVENT_SOURCE_AUTHZ_ERROR

Lambda 没有访问事件源所需的权限。

FUNCTION_CONFIG_NOT_VALID

函数配置无效。

注意

如果您的 Lambda 事件记录超过允许的 6 MB 大小限制,那么它们可能处于未处理状态。