【发布时间】:2021-11-10 18:14:12
【问题描述】:
我正在开发基于 AWS 基础设施并使用 MSK、lambda 和 SES 的通知服务。 lambda 是用 Nodejs 编写的,触发器是 MSK 主题。现在关于这个 lambda 的奇怪之处在于,即使在处理完消息之后,它也会被连续调用。 lambda 内部是通过 SES 获取收件人和发送电子邮件的代码。
我已确保代码中不存在循环。所以我的猜测是由于某种原因消息没有被标记为已使用。
发生这种情况的一个原因是,如果执行的代码在某个时候抛出了错误。但我在日志中没有错误。
执行时间(lambda 超时是个问题吗?不过我在日志中看不到类似的东西),消息量是造成这种行为的原因吗?
Lambda 是使用无服务器框架设置的:
notificationsKafkaConsumer:
handler: src/consumers/notifications.consumer
events:
- msk:
arn: ${ssm:/kafka/cluster_arn~true}
topic: "notifications"
startingPosition: LATEST
【问题讨论】:
-
lambda 中没有任何代码可以确认消息的消耗。然而,其他具有相同配置的 lambdas 设置似乎工作得很好,并且消息不会被它们无休止地消耗。
标签: node.js amazon-web-services aws-lambda serverless-framework aws-msk