You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

API Gateway GET请求调用Lambda时event和queryStringParameters为空问题

问题描述

我通过API Gateway的GET请求调用Lambda函数,已填写查询字符串参数,但测试方法时发现event对象和queryStringParameters均为空对象。

相关实现代码:

import boto3
dynamodb = boto3.resource('dynamodb')

def lambda_handler(event, context):
    print('event why no wrk:', json.dumps(event))
    print('queryStringParameters:', json.dumps(event['queryStringParameters']))

参数配置截图:
参数配置截图

查看Cloudwatch日志后,打印语句的输出如下:

2021-09-07T22:19:16.949-07:00   event why no wrk: {}

2021-09-07T22:19:16.949-07:00   [ERROR] KeyError: 'queryStringParameters' Traceback (most recent call last):   File "/var/task/

问题原因

  1. 未使用Lambda代理集成:如果API Gateway到Lambda的集成是非代理集成模式,默认不会自动把请求的查询参数、路径参数等信息塞入event对象,需要手动配置映射模板才会传递参数,未配置的情况下event就会是空对象。
  2. 控制台测试未填写测试参数:你在「方法请求」中配置的查询字符串参数只是参数校验规则,不会自动生效到控制台测试场景。控制台测试时需要单独在测试页面的「查询字符串」栏填写实际键值对,才会把参数传给Lambda。
  3. 代码存在基础问题:提供的代码中没有导入json模块,就算参数正常传递也会抛出导入错误,且直接通过键名访问queryStringParameters未做非空判断,没有查询参数时会触发KeyError。

解决方案

方案一(推荐):开启Lambda代理集成

Lambda代理集成是官方推荐的集成方式,无需手动配置参数映射即可自动传递所有请求信息,操作步骤如下:

  • 进入API Gateway对应API方法的「集成请求」页面
  • 确认集成类型为「Lambda函数」,勾选「使用Lambda代理集成」选项,保存后重新部署API
  • 代理集成模式下queryStringParameters字段会自动存在,无查询参数时为None而非抛出异常

方案二(适用于非代理集成场景):手动配置映射模板

如果需要使用非代理集成,可手动配置参数映射规则:

  • 进入「集成请求」页面,找到「映射模板」配置项
  • 添加内容类型为application/json的映射模板,填入以下内容后保存:
{
  "queryStringParameters": {
    #foreach($param in $input.params().querystring.keySet())
    "$param": "$util.escapeJavaScript($input.params().querystring.get($param))"
    #if($foreach.hasNext),#end
    #end
  }
}
  • 重新部署API后即可正常传递查询参数

通用操作

  • 控制台测试时,在测试页面的「查询字符串」输入框按参数名1=参数值1&参数名2=参数值2的格式填写测试参数后再发起测试
  • 修正代码的导入和空判断问题,参考代码如下:
import boto3
import json # 补全缺失的json模块导入
dynamodb = boto3.resource('dynamodb')

def lambda_handler(event, context):
    print('event why no wrk:', json.dumps(event))
    # 用get方法取值,无对应字段时返回空字典,避免KeyError
    query_params = event.get('queryStringParameters', {})
    print('queryStringParameters:', json.dumps(query_params))

内容的提问来源于stack exchange,提问作者Eric Gumba

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 22:18:01