Python 3.x AWS Lambda在访问事件时与代理集成的Lambda格式不正确
当前问题:仅在访问事件数据时出现格式错误的Lambda异常 当我访问该事件时,API网关返回一个内部服务器错误。 我想做的一个简化用例是访问POST请求中给定给Lambda的键的值,使用代理集成,因此不需要模板映射Python 3.x AWS Lambda在访问事件时与代理集成的Lambda格式不正确,python-3.x,amazon-web-services,aws-lambda,Python 3.x,Amazon Web Services,Aws Lambda,当前问题:仅在访问事件数据时出现格式错误的Lambda异常 当我访问该事件时,API网关返回一个内部服务器错误。 我想做的一个简化用例是访问POST请求中给定给Lambda的键的值,使用代理集成,因此不需要模板映射 import json def lambda_handler(event, context): items = {} items["hello"] = "name" itemsarray = [] for key, value in event.items
import json
def lambda_handler(event, context):
items = {}
items["hello"] = "name"
itemsarray = []
for key, value in event.items() :
itemsarray.append(key + ":" + value)
return {
'statusCode': 200,
'isBase64Encoded': False,
'body' : json.dumps(items),
'headers': {
'content-type': 'application/json'
}
};
来自API网关的错误消息,Lambda本身不返回代码错误
JSON Post数据
{dummy:hello,data:world}
回答我自己的问题,在未来几年里为某人省下几个小时的痛苦。我很想做NVM,明白了。不管走哪条路,你都可以 事件主体返回一个字符串 data=json.loadsevent['body'] 现在是与它互动的时候了。如果我们有一个JSON结构,比如
{
"someVar": "out",
"data": {
"message": "another out"
}
}
数据['data']
会给我们回个信息:另一个出去了
注
在lambda编译器联机中。它给出了以下错误,但一旦通过postman或API网关之类的东西与它交互,它就可以正常工作。它似乎给了我一个假阴性,让我很长一段时间都不舒服
'body': KeyError
Traceback (most recent call last):
File "/var/task/lambda_function.py", line N, in lambda_handler
var= json.loads(event['body'])
KeyError: 'body'
现在为我浪费的时间喝杯啤酒,谢天谢地堆栈溢出是一件事我不明白你是怎么解决的。事实上,我也有同样的错误。如果我在apigateway中以{foo:bar}的形式传递json。我应该如何在python中访问它?这样地?foo=json.loadsevent[body][foo]@external_atomOh nvm。知道了!谢谢你,伙计!
'body': KeyError
Traceback (most recent call last):
File "/var/task/lambda_function.py", line N, in lambda_handler
var= json.loads(event['body'])
KeyError: 'body'