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

如何在CDK + APIGateway + Lambda架构中正确获取路径参数

解决方法

无需额外配置映射模板,API网关的Lambda集成默认会自动将路径参数映射到event.pathParameters对象中,你遇到的问题来自两处错误:

  • CDK代码笔误:你前面定义的资源变量为stuff,添加路径参数资源时误用了不存在的get变量
  • 日志打印方式错误:使用Object.keys遍历只能拿到一级键,嵌套对象的内容无法正确展示,改用JSON.stringify打印即可看到完整参数结构

正确CDK配置示例

const api = new apigateway.RestApi(this, "image-cache-api", { 
  // 其他自定义配置
})
const stuff = api.root.addResource("stuff")
// 从已定义的stuff资源下添加路径参数
const stuffWithId = stuff.addResource("{id}")
// 直接关联Lambda即可,不需要额外传参配置
stuffWithId.addMethod("GET", new apigateway.LambdaIntegration(stuffLambda))

Lambda参数获取方式

部署后调用https://<api path>/stuff/1234,可直接通过如下方式取值:

const id = event.pathParameters.id
// 打印完整event对象请使用JSON.stringify
console.log(JSON.stringify(event, null, 2))

错误配置说明

你之前写的requestTemplate配置报类型错误,是因为LambdaIntegrationOptions中对应的配置项为复数形式的requestTemplates,且该场景下完全不需要自定义映射模板,使用默认配置即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 18:18:03