【问题标题】:What is causing this Runtime.ExitError on AWS Lambda?是什么导致 AWS Lambda 上出现此 Runtime.ExitError?
【发布时间】:2020-01-27 00:59:00
【问题描述】:

我正在尝试在 Lambda 上测试一个函数,但是当我测试它时,我得到一个 Runtime.ExitError

会是什么原因?

{"errorType": "Runtime.ExitError", "errorMessage": "RequestId:
 0dfeb7be-012d-43b7-8674-665bfd8b2bc2 Error: Runtime exited with error: exit status 7" }

ask/node_modules/aws-sdk/lib/request.js:364:18)"," 在 Request.callListeners (/var/task/node_modules/aws-sdk/lib/sequential_executor.js:106:20)"," 在 Request.emit (/var/task/node_modules/aws-sdk/lib/sequential_executor.js:78:10)","
在 Request.emit (/var/task/node_modules/aws-sdk/lib/request.js:683:14)"," 在 请求.transition (/var/task/node_modules/aws-sdk/lib/request.js:22:10)"," 在 AcceptorStateMachine.runTo (/var/task/node_modules/aws-sdk/lib/state_machine.js:14:12)"," 在 /var/task/node_modules/aws-sdk/lib/state_machine.js:26:10"," 在 要求。 (/var/task/node_modules/aws-sdk/lib/request.js:38:9)"],"message":"可以 不创建表(膳食):用户: arn:aws:sts::929545228810:assumed-role/homeAssistTemp-role-rz5qgsmq/homeAssistTemp 无权执行:dynamodb:CreateTable on resource: arn:aws:dynamodb:us-east-2:929545228810:table/Meals","time":"2019-09-26T18:02:51.854Z"} 2019-09-26T18:02:51.931Z e3d534bb-abd8-4b49-a628-2ec5c6193ec1 信息未捕获 异常:AskSdk.DynamoDbPersistenceAdapter 错误:无法创建 表(膳食): 用户: arn:aws:sts::929545228810:assumed-role/homeAssistTemp-role-rz5qgsmq/homeAssistTemp 无权执行:dynamodb:CreateTable on resource: arn:aws:dynamodb:us-east-2:929545228810:table/Meals AskSdk.DynamoDbPersistenceAdapter 错误:无法创建表 (用餐): 用户: arn:aws:sts::929545228810:assumed-role/homeAssistTemp-role-rz5qgsmq/homeAssistTemp 无权执行:dynamodb:CreateTable on resource: arn:aws:dynamodb:us-east-2:929545228810:table/Meals 在 Object.createAskSdkError (/var/task/node_modules/ask-sdk-runtime/dist/util/AskSdkUtils.js:22:17) 在响应。 (/var/task/node_modules/ask-sdk-dynamodb-persistence-adapter/dist/attributes/persistence/DynamoDbPersistenceAdapter.js:88:42) 在请求。 (/var/task/node_modules/aws-sdk/lib/request.js:364:18) 在 Request.callListeners (/var/task/node_modules/aws-sdk/lib/sequential_executor.js:106:20) 在 Request.emit (/var/task/node_modules/aws-sdk/lib/sequential_executor.js:78:10) 在 Request.emit (/var/task/node_modules/aws-sdk/lib/request.js:683:14) 在 Request.transition (/var/task/node_modules/aws-sdk/lib/request.js:22:10) 在 AcceptorStateMachine.runTo (/var/task/node_modules/aws-sdk/lib/state_machine.js:14:12) 在 /var/task/node_modules/aws-sdk/lib/state_machine.js:26:10 在请求。 (/var/task/node_modules/aws-sdk/lib/request.js:38:9) /var/task/node_modules/ask-sdk-v1adapter/dist/adapter.js:275 抛出错误; ^

AskSdk.DynamoDbPersistenceAdapter 错误:无法创建表 (用餐): 用户: arn:aws:sts::929545228810:assumed-role/homeAssistTemp-role-rz5qgsmq/homeAssistTemp 无权执行:dynamodb:CreateTable on resource: arn:aws:dynamodb:us-east-2:929545228810:table/Meals 在 Object.createAskSdkError (/var/task/node_modules/ask-sdk-runtime/dist/util/AskSdkUtils.js:22:17) 在响应。 (/var/task/node_modules/ask-sdk-dynamodb-persistence-adapter/dist/attributes/persistence/DynamoDbPersistenceAdapter.js:88:42) 在请求。 (/var/task/node_modules/aws-sdk/lib/request.js:364:18) 在 Request.callListeners (/var/task/node_modules/aws-sdk/lib/sequential_executor.js:106:20) 在 Request.emit (/var/task/node_modules/aws-sdk/lib/sequential_executor.js:78:10) 在 Request.emit (/var/task/node_modules/aws-sdk/lib/request.js:683:14) 在 Request.transition (/var/task/node_modules/aws-sdk/lib/request.js:22:10) 在 AcceptorStateMachine.runTo (/var/task/node_modules/aws-sdk/lib/state_machine.js:14:12) 在 /var/task/node_modules/aws-sdk/lib/state_machine.js:26:10 在请求。 (/var/task/node_modules/aws-sdk/lib/request.js:38:9) END RequestId: e3d534bb-abd8-4b49-a628-2ec5c6193ec1 报告请求 ID: e3d534bb-abd8-4b49-a628-2ec5c6193ec1 持续时间:1013.44 毫秒 持续时间:1100 毫秒内存大小:128 MB 使用的最大内存:97 MB 初始化 持续时间:513.63 毫秒请求 ID:e3d534bb-abd8-4b49-a628-2ec5c6193ec1 错误:运行时退出并出现错误:退出状态 7 Runtime.ExitError

【问题讨论】:

  • 你能验证你的函数没有超过超时值和分配的内存吗?
  • CloudWatch 日志说什么?
  • 假设这是一个 NodeJS lambda,退出代码 7 是 Internal Exception Handler Run-Time Failure。换句话说,您有一个未捕获的异常。查看您的 cloudwatch 日志以了解更多详细信息。
  • 我已经添加了日志。也许有一个明显的错误
  • try, catch 解决了这个问题。谢谢匿名

标签: amazon-web-services function aws-lambda


【解决方案1】:

我在研究中发现了这个页面,并认为我会发布我的问题/解决方案。没有得到确切的退出代码 7,但具体来说:

Error: Runtime exited with error: signal: killed Runtime.ExitError

没有其他错误、日志等。上一行给出了解决方案:

Memory Size: 1024 MB Max Memory Used: 1024 MB

执行 Lambda 函数时内存不足。增加最大内存,问题就解决了。如果您看到 Runtime.ExitError,检查内存是一件好事。

【讨论】:

  • 之前我曾经在将 lambda 的 max 设置为 15 分钟时看到超时错误,然后为了更快地执行此过程,我从 128 mb 增加到 256 mb 现在问题是我没有看到超时但经常看到 Runtime.ExitError 但此错误在执行本身的 4 分钟内出现。关于为什么我没有早点得到它并且只是超时的任何想法,因为现在我看到了内存问题?
【解决方案2】:

“假设这是一个 NodeJS lambda,退出代码 7 是内部异常处理程序运行时失败。换句话说,您有一个未捕获的异常。请查看您的 cloudwatch 日志以获取更多详细信息。” ——匿名懦夫

使用 try-catch 将代码包装在 exports.handler 中解决了我的问题

【讨论】:

  • 嗯。嗯,这是第一次。
猜你喜欢
  • 2019-08-28
  • 1970-01-01
  • 2021-04-19
  • 2015-02-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多