【发布时间】:2018-03-22 05:15:49
【问题描述】:
documentation 声明 json 应该返回包含我所拥有的正文、标题和状态代码。但是,无论出于何种原因,当我在 API 网关中对其进行测试时,它都会返回格式错误的响应。
这是下面方法的输出。
"{\"body\": 200, \"headers\": {\"Content-type\": \"application/json\"}, \"statusCode\": 200}"
def addnumbers(message, context):
result = message['num1'] + 1
print(result)
resp = {
"statusCode": 200,
"body": result,
"headers": { "Content-type": "application/json"}
}
return (json.dumps(resp))
我目前正在传递 num1=1 并且它没有提供任何更好的错误消息。任何指导将不胜感激。
【问题讨论】:
-
当您尝试直接返回响应对象而不是使用
json.dumps将其转换为字符串时会发生什么?只需return resp? -
还是同样的问题,除了代码之外,会不会有其他影响?
-
您确定它正在返回该响应并且没有引发错误吗?您是否在 CloudWatch 中检查函数的日志?
-
您在该日志中看到 Python 堆栈跟踪了吗?
Endpoint response body before transformations: {"stackTrace": [["/var/task/lambda_function.py", 5, "addnumbers", "result = message['num1'] + 1"]], "errorType": "KeyError", "errorMessage": "'num1'"} -
我想我找到了解决方案。它可能不是最佳/正确的。这是因为我在做一个得到它失败了。我将操作更改为“ANY”,然后进行 POST,它工作正常。
标签: json amazon-web-services aws-lambda