为什么 AWS Lambda 无法读取通过 API 网关测试发送给它的测试事件?

问题描述 投票:0回答:2

我正在用 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。

python amazon-web-services post aws-lambda api-gateway
2个回答
0
投票

您的

task
在活动的
body
内。你应该使用:

task = event["body"]["task"]

0
投票

您似乎已经意识到,事件包含的信息远不止有效负载本身。您可以查看文档以了解事件格式以及您应该如何响应。

https://docs.aws.amazon.com/lambda/latest/dg/services-apigateway.html#apigateway-example-event

© www.soinside.com 2019 - 2024. All rights reserved.