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

VSCode中AWS SAM两种调试配置异常问题求助

VSCode中AWS SAM调试/event端点的问题解决

问题1:直接调用配置找不到package.json

明明template.yaml和package.json在同一目录却报错,试试这些办法:

  • 确认VSCode当前打开的工作区是EventsApi根目录,而非上级目录。工作区路径错误会导致SAM从不对的位置查找依赖文件。
  • 在launch.json的直接调用配置里,显式指定cwd字段为项目根目录,强制SAM读取正确路径的文件。示例配置:
{
  "type": "aws-sam",
  "request": "direct-invoke",
  "name": "Direct Invoke Event API",
  "invokeTarget": {
    "target": "template",
    "templatePath": "${workspaceFolder}/template.yaml",
    "logicalId": "AddEventFunction"
  },
  "cwd": "${workspaceFolder}",
  "lambda": {
    "runtime": "nodejs18.x" // 替换为你实际使用的Node版本
  }
}
  • 核对template.yaml的Function配置:CodeUri要指向包含package.json的目录(比如.),Handler要和代码里的实际导出函数一致(比如handler.addEvent)。

问题2:附加调试无法命中断点、无法添加stopOnEntry

针对断点不命中和参数添加问题,按以下步骤处理:

断点不命中的解决办法

  • 确保本地调试用的是未打包的源码,不要用部署后的压缩包,SAM本地运行时要直接指向你的源码目录。
  • 在launch.json的附加配置里,正确映射localRoot和remoteRoot。比如本地源码在${workspaceFolder}/src,Lambda容器内的代码路径是/var/task,配置要写成:
{
  "type": "aws-sam",
  "request": "attach",
  "name": "Attach to AddEventFunction",
  "target": "AddEventFunction",
  "port": 5858,
  "localRoot": "${workspaceFolder}/src",
  "remoteRoot": "/var/task",
  "stopOnEntry": true
}
  • 启动SAM本地调试时必须带调试端口参数:sam local invoke AddEventFunction --debug-port 5858,等容器启动后再触发VSCode的附加调试。
  • 检查断点位置:不要打在空行、注释或永远不会执行的代码分支上,确保断点在实际运行的逻辑里。

无法添加stopOnEntry的解决办法

  • 更新VSCode的AWS SAM扩展到最新版本,旧版本可能不支持这个参数。
  • 确认配置的type字段是aws-sam,如果是普通的node调试类型,可能不兼容SAM的附加参数。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 06:15:42