Kafka Lambda触发器(EventSourceMapping)-密钥中的凭据未刷新

0

【以下的问题经过翻译处理】 你好,我正在使用Kafka触发器(Cloudformation EventSourceMapping)将自定义Kafka集群集成到AWS Lambda中。

如果我重置Kafka集群的密码并随后更新在EventSourceMapping中使用的密钥,则EventSourceMapping不会重新获取/刷新该密钥。

相反,EventSourceMapping仍在尝试使用旧的密钥版本(使用旧密码),这会导致错误:

Last processing result: PROBLEM: SASL authentication failed.

由于这个问题,没有事件被传递到lambda函数。

由于我将密钥的ARN传递给EventSourceMapping,并授予Lambda获取此密钥的权限,我期望EventSourceMapping会定期自动刷新/重新获取密钥。

然而,我需要做的是删除EventSourceMapping(触发器)并再次创建它(具有相同的配置)。这是不可接受的,因为我们的Kafka集群会使用多个Lambda集成,在密码(和上述密钥)更改后删除/重新创建Lambda集成是非常低效的。

1 Antwort
0

【以下的回答经过翻译处理】 你好,

我了解到你正在使用Lambda的Kafka Event Source Mapping。你通过将新的凭证密钥与Kafka集群关联,对现有Kafka集群的密码进行了重置。在此之后,你更新了Lambda Event Source Mapping中的凭证密钥。然而,Lambda事件源似乎仍在使用先前的凭证密钥,并且没有自动重新获取/刷新新的凭证密钥,导致SASL身份验证失败错误。如果我有任何误解,请纠正我。

我在我的AWS账户中尝试复制此操作,我创建了一个新的凭证密钥,将新的凭证密钥与Kafka集群关联。进一步地,我将Kafka客户端的用户名/密码更新为与新的凭证密钥中的值匹配。最后,我更新了Lambda事件源映射以使用新的凭证密钥ARN。下面是我用来更新事件源的CLI命令:

$ aws lambda update-event-source-mapping --uuid <Event Source Mapping ID> --function-name <Function_Name> --source-access-configurations "Type"="SASL_SCRAM_512_AUTH","URI"="<New_Secret_ARN"

更新后,我能够成功使用新的凭证密钥凭证进行身份验证,并将Kafka事件传递到Lambda。不需要删除并重新创建Lambda事件源。

为了进一步解决你的具体问题,请说明你是否正在使用CloudFormation来部署所有更改和更新。假设你正在使用CloudFormation更新Lambda与新的凭证密钥,你是否在控制台或CLI(list-event-source-mappings)中看到了新的凭证密钥ARN反映出来。在Lambda日志中是否看到了“Last processing result: PROBLEM: SASL authentication failed.”的错误。如果可能,请使用AWS CLI运行Lambda事件

profile picture
EXPERTE
beantwortet vor 6 Monaten

Du bist nicht angemeldet. Anmelden um eine Antwort zu veröffentlichen.

Eine gute Antwort beantwortet die Frage klar, gibt konstruktives Feedback und fördert die berufliche Weiterentwicklung des Fragenstellers.

Richtlinien für die Beantwortung von Fragen