首页 > 解决方案 > 从 API Gateway 获取查询字符串参数

问题描述

我正在使用 Amazon API Gateway 调用 lambda 函数。我正在测试一个使用以下作为我的查询字符串的获取请求earlyDate="12-01-21"&laterDate="12-03-21"

我目前有我的 lambda 函数返回通过的事件:

def lambda_handler(event, context):
    return {
        "statusCode": 200,
        "body": json.dumps(event)
    } 

这按预期工作。当我测试我的 API 网关时,我得到一个响应,其中包括

"queryStringParameters": {
    "earlyDate": "12-01-21",
    "laterDate": "12-03-21"
  },
  "multiValueQueryStringParameters": {
    "earlyDate": [
      "12-01-21"
    ],
    "laterDate": [
      "12-03-21"
    ]
  },

这表明我应该能够访问这些查询参数event.queryStringParameters。但是,当我更改我的 lambda 函数以返回这些时:

def lambda_handler(event, context):
    return {
        "statusCode": 200,
        "body": json.dumps(event.queryStringParameters)
    } 

结果是 502 错误。

如何访问从我的 API 网关传入的查询字符串参数?

标签: pythonamazon-web-servicesaws-api-gateway

解决方案


我认为,事件是一个字典,我们可以访问它的查询参数event['queryStringParameters']

我们可以通过

for key, value in event.items():
   print(key, value)

Lambda 可以返回:

return {
    'statusCode': 200,
    'body': json.dumps(event['queryStringParameters'])
}

推荐阅读