繁体   English   中英

是否有任何命令可以使用 AWS SAM CLI 在本地“调试”模式下运行 Lambda function?

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

我正在使用 VS Code 编写 Lambda function 并在本地配置 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

谢谢,

有一个工具叫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> 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2025 STACKOOM.COM