【问题标题】:"LAMBDA_RUNTIME" Error on high-volume Lambda Function大容量 Lambda 函数出现“LAMBDA_RUNTIME”错误
【发布时间】:2020-07-07 13:39:17
【问题描述】:

我目前正在使用用 Javascript 编写的 Lambda 函数,该函数设置了 SQS 事件源,以自动从 SQS 队列中提取消息并对消息内容进行一些基本处理。我无法显示代码,但 lambda 函数执行的总结基本上是:

对于它作为事件的一部分接收的批处理中的每条消息:

  1. 它将正文(JSON 字符串)解析为 Javascript 对象。
  2. 它从 S3 读取一个对象,该对象使用 getObject 在对象中列出。
  3. 它使用 put 将记录放入 DynamoDB 表中。
  4. 如果没有错误,它会删除使用 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


【解决方案1】:

我只有收到此错误:
[ERROR] [1638918279694] LAMBDA_RUNTIME Failed to post handler success response. Http response code: 413.

我转到 aws 控制台上的 lambda 函数并使用我构建的自定义事件运行测试,我得到的错误是:

{
    "errorMessage": "Response payload size exceeded maximum allowed payload size (6291556 bytes).",
    "errorType": "Function.ResponseSizeTooLarge"
}

所以这是 cloudwatch 不会返回但 lambda 函数控制台的测试部分会返回的实际错误。

我想我必须将信息返回到 S3 文件或其他东西,但这是另一回事。

【讨论】:

  • 这并不能真正回答问题。如果您有其他问题,可以点击 提问。要在此问题有新答案时收到通知,您可以follow this question。一旦你有足够的reputation,你也可以add a bounty 来引起对这个问题的更多关注。 - From Review
  • 嗯,不确定是否回答了这个问题,但这建议他通过 aws lambda Web 控制台测试该功能并收到不同的错误消息并分享我的案例以及它如何为我提供更多信息.如果我违反了某些规则,那不是我的本意
【解决方案2】:

你的函数被异步调用,所以当它完成时,它会向调用者发出信号,如果它成功了。 您应该在几毫秒前出现错误,可能是未记录的未处理异常。如果是这种情况,您的函数会在不知道异常的情况下结束并尝试发布成功响应。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-10-23
    • 2021-05-18
    • 2015-08-22
    • 1970-01-01
    • 1970-01-01
    • 2023-03-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多