使用 AWS SAM CLI、CDK 和 Lambda 层时无法进行本地调试

时间:2021-07-18 18:13:28

标签: amazon-web-services visual-studio-code aws-cdk aws-sam-cli aws-lambda-layers

在使用 SAM CLI、AWS CDK 和 Lambda 层构建 Lambda 函数时,我找不到有关如何在本地调试函数的示例或好的文档。

当使用 CDK 构建 RestApi 和简单的 Lambda 函数,然后尝试使用 VSCode 使用如下启动配置在本地进行调试时:

{
  "type": "aws-sam",
  "request": "direct-invoke",
  "name": "hello:app.handler (nodejs12.x)",
  "invokeTarget": {
    "target": "code",
    "projectRoot": "${workspaceFolder}/infrastructure/handlers/hello",
    "lambdaHandler": "app.handler"
  },
  "lambda": {
    "runtime": "nodejs12.x",
    "payload": {},
    "environmentVariables": {}
  }
}

从任何层引用模块的导入语句会抛出一个错误,例如:

{"errorType":"Runtime.ImportModuleError","errorMessage":"Error: Cannot find module '/opt/nodejs/utils'"

重现步骤:

  1. 克隆此存储库:https://github.com/swizzmagik/sam-lambda-layer-test
  2. 运行 npm install
  3. 运行 npm run build
  4. 运行 npm run api
  5. 观察 hello 函数是否正确解析层引用并正常工作 使用 curl 或 postman 调用时很好
  6. 打开 handlers/hello/app.ts 并尝试通过打开 hello.ts 文件并点击在 VSCode 中进行调试 F5 注意调试器启动但无法导入 模块并在这一行失败 import { buildResponseHeaders, handleError } 来自“/opt/nodejs/utils”;

0 个答案:

没有答案
相关问题