是否有使用 AWS SAM CLI 在本地 'Debug' 模式下 运行 Lambda 函数的任何命令?

Is there any command to run Lambda function in the 'Debug' mode locally using the AWS SAM CLI?

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

执行此命令后,我得到了一个示例 hello-world 项目脚手架,我可以在本地看到 运行 等选项|本地调试 |配置 就像这个截图:-

我相信这个选项是使用安装在 VS Code 编辑器中的 'Code Lens' 插件提供的。我能够在本地使用此选项编写自己的代码并进行调试,但过了一会儿,此选项消失了,如下所示:-

现在,我无法再在调试模式下 运行 我的 Lambda 代码。通过执行此命令:- 山姆本地调用——事件 sam 本地调用 --no-event

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

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

谢谢,

有一个名为 Thundra 的工具。它有一个 VSCode 的插件,您可以在其中调试 Lambda 的实时。您可以从这里查看:https://marketplace.visualstudio.com/items?itemName=thundra.thundra-debugger

我能够在这里找到问题的解决方案。这是由 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>