首页 > 解决方案 > 是否有任何命令可以使用 AWS SAM CLI 在本地以“调试”模式运行 Lambda 函数?

问题描述

我正在使用 VS Code 编写 Lambda 函数,并在本地配置 AWS SAM(无服务器应用程序模型)CLI。我已经使用这个命令sam init --runtime nodejs12.x --name启动了这个项目

执行此命令后,我得到了一个示例 hello-world 项目脚手架,我可以看到Run Locally|等选项 本地调试 | 在此屏幕截图中进行配置:-

在此处输入图像描述

我相信这个选项是使用安装在 VS Code 编辑器中的“Code Lens”插件来实现的。我能够在本地使用此选项编写自己的代码和调试,但过了一会儿,此选项消失了,如下所示:- 在此处输入图像描述

现在,我不能再在调试模式下运行我的 Lambda 代码了。通过执行这个命令:- sam local invoke --event sam local invoke --no-event

Lambda 在本地正常运行,但不在调试模式下。当我创建新的 AWS SAM 项目时,选项即将出现,但我的代码不再提供。它与 Code Lens 或 SAM Serverless Template 有关吗?

请协助帮助我:- 选项 A)启用此选项选项 B)AWS SAM 中的等效命令以在调试模式下运行 Lambda

谢谢,

标签: amazon-web-servicesdebuggingaws-lambdaserverless-application-model

解决方案


我能够在这里找到我的问题的解决方案。这是由 AWS SAM CLI 提供的开箱即用的。我们需要首先将 VS Code 的 launch.json 配置为调试器端口 9999 或任何东西:-

{
    "version": "0.2.0",
    "configurations": [
      {
        "name": "Attach to SAM CLI",
        "type": "node",
        "request": "attach",
        "address": "localhost",
        "port": 9999,
        "localRoot": "${workspaceRoot}/hello-function",
        "remoteRoot": "/var/task",
        "protocol": "inspector",
        "stopOnEntry": false
      }
    ]
  }

然后执行以下命令:-

sam local invoke -d 9999 --no-event <function name> 

推荐阅读