【发布时间】:2022-01-13 14:14:10
【问题描述】:
我正在尝试编写一个 Lambda 函数,该函数通过命中 API 网关端点来调用。简单地返回事件,我可以看到响应中有一个body:
def lambda_handler(event, context):
return str(event)
回复:
{
'version': '2.0',
'routeKey': 'ANY /identify',
'rawPath': '/default/identify',
'rawQueryString': '',
'headers':
{
...
},
'requestContext':
{
...
},
'body': '<base64 encoded string is here>',
'isBase64Encoded': True
}
但是,当我尝试返回 just 正文时,我会收到以下错误(包括多个示例,它们都返回相同的错误)。
def lambda_handler(event, context):
return str(event['body'])
def lambda_handler(event, context):
return json.loads(event['body'])
def lambda_handler(event, context):
params = parse_qs(event["body"])
def lambda_handler(event, context):
return event['body']
{
"errorMessage": "'body'",
"errorType": "KeyError",
"requestId": "5acbcc66-da05-429f-baa9-6c8d83801b4f",
"stackTrace": [
" File \"/var/task/lambda_function.py\", line 10, in lambda_handler\n return json.loads(event['body'])\n"
]
}
有什么想法吗?
【问题讨论】:
-
<base64 encoded string is here>你还在解码base64吗?解码过程的结果是什么? -
试试这个检查可用的密钥:
print(event.keys())
标签: python amazon-web-services api rest aws-lambda