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

无法将AWS API Gateway查询参数传递至Python AWS Lambda的问题

问题排查与解决方法

1. 确认API Gateway是否启用Lambda代理集成

这是导致参数无法传递的最常见原因:

  • 若API Gateway未配置Lambda代理集成,queryStringParameters不会自动注入Lambda的event对象中。
  • 检查方式:进入API Gateway控制台,找到对应endpoint的GET方法,查看「集成请求」设置,确认已勾选使用Lambda代理集成。

2. 检查API Gateway的部署状态

  • 修改集成配置后,必须重新将API部署到对应阶段(如prod、dev),否则新配置不会生效。
  • 操作步骤:在API Gateway控制台顶部点击「部署API」,选择目标阶段完成部署。

3. 验证Lambda接收的完整event结构

  • 在Lambda代码中打印整个event对象,确认参数实际所在路径:
    print('Full event:', json.dumps(event))
    
  • 若使用非代理集成,参数可能位于event['params']['querystring']或其他自定义路径下,需根据实际结构调整取值逻辑。

4. 确认请求参数名的一致性

  • 检查实际请求的参数名是否与代码中的City、State完全一致(注意大小写、拼写,避免出现city/state这类小写错误)。

修复后的示例代码(需确保代理集成已启用)

你的原代码逻辑无问题,可额外增加空字符串过滤处理:

import json 

def lambda_handler(event, context):
    # 提取查询参数
    query_parameters = event.get('queryStringParameters', {})
    city = query_parameters.get('City', '').strip()  
    state = query_parameters.get('State', '').strip()

    # 打印参数值
    print('City:', city)
    print('State:', state)

    if not city or not state:
        return {
            'statusCode': 400,
            'body': 'City and State parameters are required.'
        }
    
    # 后续业务逻辑示例
    return {
        'statusCode': 200,
        'body': json.dumps({'City': city, 'State': state})
    }

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.30 00:34:55