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

如何为AWS Lambda调用的JSON传递路径参数并替换路径占位符?

解决方法

问题核心在于:没有API Gateway的情况下,AWS Lambda不会自动将pathParameters中的值替换到path的占位符里。你的Lambda函数(或后端API)只会直接使用path字段的原始值,所以{id}会被当作路径的一部分传递,导致非法参数异常。

要解决这个问题,你需要直接在JSON的path字段中替换掉{id}占位符,而不是依赖pathParameters来自动替换。具体修改如下:

修改后的JSON示例

假设你要替换的ID值是12345,修改后的JSON如下:

{
  "httpMethod": "PUT",
  "headers": {
    "accept": "application/json"
  },
  "path": "/some-api/v1/channels/company/employees/12345",
  "pathParameters": {
    "id": "12345"
  },
  "body" : "{\"name\": \"Jeff\", \"language\": \"en-US\", \"job\": {\"location\": \"NYC\", \"jobCode\": \"0000\"}}",
  "isBase64Encoded": false
}

关键修改说明

  • 直接将path中的{id}替换为实际的ID值(比如12345),确保路径是完整合法的。
  • pathParameters可以保留(如果你的Lambda/后端逻辑需要读取这个参数),但它不再负责替换路径中的占位符,仅作为参数传递的补充。

简单来说,你需要在生成这个JSON请求的时候,先完成path字段的占位符替换,再将完整的JSON传给Lambda。Lambda本身没有内置的路径占位符替换逻辑,这个逻辑原本由API Gateway提供,既然你不用API Gateway,就必须自己在JSON层面完成路径的拼接。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 11:35:26