【问题标题】:Is there any command to run Lambda function in the 'Debug' mode locally using the AWS SAM CLI?是否有任何命令可以使用 AWS SAM CLI 在本地以“调试”模式运行 Lambda 函数?
【发布时间】:2020-05-14 15:31:51
【问题描述】:

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

执行此命令后,我得到了一个示例 hello-world 项目脚手架,我可以看到诸如 Run Locally| 之类的选项本地调试 |像这个截图一样配置:-

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

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

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

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

谢谢,

【问题讨论】:

    标签: amazon-web-services debugging aws-lambda serverless-application-model


    【解决方案1】:

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

    【讨论】:

    • 感谢会检查Thundra。虽然,我找到了 SAM CLI 本身提供的开箱即用解决方案。配置vs代码设置的launch.json文件后执行sam local invoke -d 9999 --no-event
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-17
      • 1970-01-01
      • 2016-08-09
      • 2020-01-24
      • 2021-01-30
      相关资源
      最近更新 更多