【问题标题】:AWS MSK Trigger - Lambda (consumer) running infinitelyAWS MSK 触发器 - Lambda(消费者)无限运行
【发布时间】: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


【解决方案1】:

事实证明,问题在于 lambda 超时。消息在大量日志中丢失了,有趣的是“超时”并不是错误,因此使用“ERROR”过滤日志不起作用。

【讨论】:

  • 您的答案可以通过额外的支持信息得到改进。请edit 添加更多详细信息,例如引用或文档,以便其他人可以确认您的答案是正确的。你可以找到更多关于如何写好答案的信息in the help center
猜你喜欢
  • 2021-05-07
  • 2021-07-17
  • 2022-08-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-07-27
相关资源
最近更新 更多