谜我这个!
为什么是lambda?
curl -X POST -H "Content-Type: application/json" -d '{"first_name":"ABCDE", "last_name": "john"}' https://8.execute-api.us-east-1.amazonaws.com/prod/HelloPython
{"message": "Internal server error"}
它适用于lambda测试!虽然我很新但仍然如何找到原因?我在云指标中所需要的只是500个错误。但我想知道原因。我正在做一个简单的你好世界。
import json
def respond(err, res=None):
return {
'statusCode': '400' if err else '200',
'body': err.message if err else json.dumps(res),
'headers': {
'Content-Type': 'application/json',
},
}
def my_handler(event, context):
message = 'Hello {} {}!'.format(event['first_name'],
event['last_name'])
res = {'message' : message }
return respond(None, res)
更新 - 以下是日志:
'first_name': KeyError
Traceback (most recent call last):
File "/var/task/hello_python.py", line 68, in my_handler
message = 'Hello
{}
{}
!'.format(event['first_name'],
KeyError: 'first_name'
我很困惑。事件是什么类型的对象?如果我需要一个字符串,请使用json.loads(event)来获取一个dict对象吗?
答案 0 :(得分:1)
我通常不喜欢回答我自己的问题,但作为lambda的新手,我希望这有助于某人。
1)事件数据如下所示:
test = json.loads(event['body'])
message = "Dude %s %s" % (test['first_name'], test['last_name'])
2)数据在体内,然后必须从json加载:
pounds, ounces = map(float, oz.split(':'))
卷曲现在有效