AWS API Gateway与Lambda非代理集成配置问题求助
AWS API Gateway Lambda非代理集成故障排查步骤
检查映射模板的正确性
在Integration Request中,确认已针对对应Content-Type(比如application/json)添加映射模板,模板需正确提取查询参数。例如针对catName参数,模板内容应为:{"catName": "$input.params('catName')"}注意语法是否正确,比如
$input.params的拼写、参数名称是否与Method Request中定义的catName完全一致,避免大小写错误。核对Lambda函数的输入处理逻辑
非代理集成的Lambda输入是映射模板生成的自定义对象,而非代理集成包含全量请求信息的event结构。如果你的Lambda代码仍沿用代理集成的写法(比如event['queryStringParameters']['catName']),会因找不到对应键值报错。需改为直接读取映射后的字段:cat_name = event['catName']验证Lambda调用配置与权限
- 确认Integration Request中选择的Lambda函数与之前代理集成的正确函数一致;
- 检查API Gateway的执行角色是否具备
lambda:InvokeFunction权限(虽然代理集成成功,但非代理集成若使用不同角色需重新确认); - 确保Invocation Type设置为
RequestResponse,而非异步的Event,否则无法同步获取返回结果。
确认Method Request参数配置
检查Method Request的URL查询字符串参数中,catName已正确添加,若勾选了Required,测试时必须携带该参数,否则会触发参数校验错误。查看CloudWatch日志定位具体错误
- 开启API Gateway阶段的执行日志(Stage Settings → Logs/Tracing,设置Log Level为INFO),在CloudWatch Logs中查看API Gateway的请求处理日志,可获取映射模板执行情况、Lambda调用状态等信息;
- 查看Lambda函数的CloudWatch日志,确认收到的event结构是否符合预期,是否存在代码抛出的异常(如
KeyError、DynamoDB调用错误等)。
内容的提问来源于stack exchange,提问作者TheodorosNikoleris
相关产品推荐
相关产品推荐

