如何解决 Lambda 函数“运行时系统退出”错误?

1 分钟阅读
0

我的 AWS Lambda 函数返回了“运行时系统退出”错误。

简短描述

Lambda 运行时系统错误返回类似于以下内容的状态代码:

{
    "errorType": "Runtime.ExitError",
    "errorMessage": "RequestId: 1234aa1b-cd50-6c78-90cd-ce1234ce9950 Error: Runtime exited with error: exit status 129"
}

解决方法

按照以下最佳实践查看 Lambda 函数代码,确定根本原因,然后解决运行时系统错误。

  • 检查函数代码中是否有显式调用 process.exit (0)exit()quit()os.Exit()Environment.Exit() 等语法的退出代码。如果函数代码包含其中任何退出代码,则将其删除或替换为有效的返回语句。
  • 查看 Lambda 函数的 Amazon CloudWatch 日志并检查该函数的内存。Lambda 根据配置的内存量按比例分配 CPU 处理能力。您可能需要增加内存量。您可以将分配给 Lambda 函数的内存量配置为介于 128 MB 和 10,240 MB 之间。您还可以优化代码以减少消耗的资源量。有关详细信息,请参阅内存和计算能力
  • 如果该函数正在连接到后端数据库,则可能会出现太多连接。为避免不必要的连接,请在函数处理程序之外初始化数据库连接。后续 Lambda 函数调用请求可以重用这些数据库连接。有关详细信息,请参阅使用 AWS Lambda 函数的最佳实践
  • 调用 Lambda 函数时尝试重用空闲连接导致连接错误。要维护持久连接,请使用与运行时系统关联的 keep-alive 指令。有关详细信息,请参阅通过 Node.js 中的 keep-alive 重用连接
  • 检查 Lambda 函数是否因文件描述符和线程限制为 1,024 而出现“内存不足”错误。对函数启用 Lambda Insights 增强监控。您可以使用专门的查询语法搜索和分析日志数据,以获取内存使用情况指标。例如,您可以监控 fd_use 指标。这些指标存储在名为 /aws/lambda-insights 的日志组中。有关详细信息,请参阅 Lambda Insights 收集的指标

相关信息

如何确定我的 Lambda 函数是否超时?

AWS 官方
AWS 官方已更新 1 年前