我正在用 Python 在 AWS Lambda 上编写一个应用程序,它希望接收放置在事件字典中的信息。
def lambda_handler(event, context):
# TODO implement
try:
task = event["task"]
except:
return {
'statusCode': 500,
'body': json.dumps('Cound not find the requested task.')
}
当我在 Lambda 控制台中测试下面的 JSON 事件时,函数会理解它,然后执行它的操作。
{
"task": "returnID",
"username": "noneofyourbusiness",
"password": "pleasedonotask"
}
但是当我将这个事件放在 AWS API 网关(控制台版本)中提供的测试中时,它找不到事件[“任务”]。
我还应该检查什么?我应该咨询其他资源吗?
我尝试将 JSON 放入查询字符串(即使该方法应该是 POST)并再次尝试使用 POST 和 GET。
您的
task
在活动的body
内。你应该使用:
task = event["body"]["task"]
您似乎已经意识到,事件包含的信息远不止有效负载本身。您可以查看文档以了解事件格式以及您应该如何响应。
https://docs.aws.amazon.com/lambda/latest/dg/services-apigateway.html#apigateway-example-event