Python 中的 AWS Lambda 函数错误 - AWS Lambda

Python 中的 AWS Lambda 函数错误

当您的代码引发错误时,Lambda 将生成错误的 JSON 表示形式。此错误文档会出现在调用日志中,对于同步调用,它出现在输出中。

例 lambda_function.py 文件 – 异常

def lambda_handler(event, context): return x + 10

此代码将导致名称错误。Lambda 将捕获此错误并生成一个包含错误消息、类型和堆栈跟踪字段的 JSON 文档。

{ "errorMessage": "name 'x' is not defined", "errorType": "NameError", "stackTrace": [ " File \"/var/task/error_function.py\", line 2, in lambda_handler\n return x + 10\n" ] }

在您从命令行调用函数时,AWS CLI 将响应拆分为两个文档。为指示出现函数错误,在终端中显示的响应包含 FunctionError 字段。函数返回的响应或错误写入到输出文件。

$ aws lambda invoke --function-name my-function out.json { "StatusCode": 200, "FunctionError": "Unhandled", "ExecutedVersion": "$LATEST" }

查看输出文件以查看错误文档。

$ cat out.json {"errorMessage": "name 'x' is not defined", "errorType": "NameError", "stackTrace": [" File \"/var/task/error_function.py\", line 2, in lambda_handler\n return x + 10\n"]}
注意

来自 Lambda 的响应中的 200(成功)状态代码指示您发送到 Lambda 的请求没有出错。有关导致错误状态代码的问题,请参阅Errors

Lambda 还会在函数日志中记录错误对象,最多 256 KB。要在从命令行调用函数时查看日志,请使用 --log-type 选项并解码响应中的 base64 字符串。

$ aws lambda invoke --function-name my-function out.json --log-type Tail \ --query 'LogResult' --output text | base64 -d START RequestId: fc4f8810-88ff-4800-974c-12cec018a4b9 Version: $LATEST     return x + 10/lambda_function.py", line 2, in lambda_handler END RequestId: fc4f8810-88ff-4800-974c-12cec018a4b9 REPORT RequestId: fc4f8810-88ff-4800-974c-12cec018a4b9 Duration: 12.33 ms Billed Duration: 100 ms Memory Size: 128 MB Max Memory Used: 56 MB

有关日志的更多信息,请参阅 Python 中的 AWS Lambda 函数日志记录