【发布时间】:2020-07-07 13:39:17
【问题描述】:
我目前正在使用用 Javascript 编写的 Lambda 函数,该函数设置了 SQS 事件源,以自动从 SQS 队列中提取消息并对消息内容进行一些基本处理。我无法显示代码,但 lambda 函数执行的总结基本上是:
对于它作为事件的一部分接收的批处理中的每条消息:
- 它将正文(JSON 字符串)解析为 Javascript 对象。
- 它从 S3 读取一个对象,该对象使用
getObject在对象中列出。 - 它使用
put将记录放入 DynamoDB 表中。 - 如果没有错误,它会删除使用
deleteMessage从队列中处理的单个 SQS 消息。
此 SQS 队列容量很大,并且会批量接收消息,定期积压数百万条消息。 Lambda 通常能够扩展以同时处理数十万条消息。这个解决方案过去在我的其他应用程序中运行良好,但我现在遇到以下间歇性错误,随着 Lambda 的扩展,该错误开始可靠地出现:
[ERROR] [#############] LAMBDA_RUNTIME Failed to post handler success response. Http response code: 400.
我无法在任何地方找到有关此错误的含义和原因的任何信息。关于哪些处决遇到它似乎没有可辨别的模式。该函数通常能够在短时间内运行而不会遇到错误并扩展到预期的水平。但是,如您所见,错误开始突然出现,并通过强制其自动缩减来完全破坏 Lambda 吞吐量:
有谁知道这个“LAMBDA_RUNTIME”错误是什么意思以及可能导致它的原因?我的 Lambda 函数运行时是 Node v12。
【问题讨论】:
-
你有没有弄明白这个?我偶尔会看到同样的问题。
-
不,很遗憾。该错误最终停止出现,但我无法追溯它的原因。
-
我也遇到了这个问题,不知道为什么会这样
标签: amazon-web-services aws-lambda amazon-sqs