Azure Functions:如何在 WebStorm 中进行调试?

问题描述 投票:0回答:3

azure-functions-cli 提供了一种启动调试的方法,但这些说明似乎是特定于 Visual Studio 的。

我尝试通过在 WebStorm 中设置运行配置以将 JavaScript 文件指向:

使用与无服务器类似的技巧

\node_modules\azure-functions-cli\lib\main.js

然后传递应用程序参数:

run myFunctionName --debug

使用Azure的工具成功运行函数,但是WebStorm都尝试设置调试端口;当 Azure 窗口打开时,它会设置自己的调试端口。

来自网络风暴:

C:\Program Files (x86)\JetBrains\WebStorm 2016.2.3\bin\runnerw.exe" "C:\Program Files\nodejs\node.exe" --debug-brk=60168 --expose_debug_as=v8debug C:\Users\username\AppData\Roaming\npm\node_modules\azure-functions-cli\lib\main.js run myfunction --debug
Debugger listening on [::]:60168
System.Net.Http.HttpRequestException: An error occurred while sending the request. ---> System.Net.WebException:

同样,Azure-cli 说它打开了一个调试端口,但它们不匹配。

因此,调用函数时设置的断点将被忽略(尽管它确实成功运行)。

有人知道如何正确配置它以便能够使用 WebStorm 进行调试吗?

javascript node.js debugging webstorm azure-functions
3个回答
12
投票

Azure-Functions-CLI 更名为 azure-functions-core-tools。如果您仍然有 Azure-Functions-CLI,请参阅本文末尾的旧回复。

如果您正在运行新的 azure-functions-core-tools ,它们似乎破坏了运行远程调试器的能力:-(。

我打开了以下问题,如果他们告诉我,我会更新: https://github.com/Azure/azure-functions-core-tools/issues/378

幸运的是,新的 azure-functions-core 工具 Beta 版并没有所有这些 C# 疯狂,阻止它在其他操作系统上运行并需要远程调试器。要安装该版本,您可以使用:

npm i -g azure-functions-core-tools@core

安装该版本后,您可以使用良好的标准 Node 运行时启动程序。

  1. 在 WebStorm 中,从 Run -> Edit Configurations 创建一个新的“Node.JS”。
  2. 给调试一些类型的名称。
  3. 将 JavaScript 文件设置为: ~\AppData\Roaming 下午 ode_modules zure-functions-core-tools\lib\main.js

注意:以上假设您在具有全局标志的 Windows 计算机上安装了 Azure Functions。

  1. 将应用程序参数设置为:start --debug VSCODE

  1. 编辑文件“.vscode\launch.json”并将node的调试端口更改为9229。
  2. 在 WebStorm 中选择运行-> 调试:“What_You_Named_the_Remote_Profile”

  3. 添加一些断点。

  4. 导航到您的 API 端点并查看断点是否有效。

注意:默认情况下,函数将位于 http://localhost:7071/api/functionName

---------------- 已编辑但为后代保留 --------------

好吧,看起来你不能用本地调试来做到这一点,但可以用 WebStorm 中的“远程调试”。

  1. 在 WebStorm 中,从运行 -> 编辑配置创建一个新的“Node.JS 远程调试”。
  2. 给调试一些类型的名称。
  3. 在上面写着“启动前:外部工具”的地方点击 + 号,然后选择“运行外部工具”。
  4. 再次点击 + 号并像屏幕截图一样填写它(假设您全局安装了 Azure Function CLI)。

注意:以上截图已根据最新版本的Azure Functions CLI/.早期版本要求您声明应用程序名称,并且不需要 --debug 进行调试。因此,如果您没有更新到最新版本的 Azure Functions CLI(现在称为 Azure-Functions-Core-Tools),您可能需要在“参数”字段中“运行 MyApp”。

  1. 在 WebStorm 中选择运行-> 调试:“What_You_Named_the_Remote_Profile”

  2. 添加一些断点。

  3. 导航到您的 API 端点并查看断点是否有效。

注意:默认情况下,函数将位于 http://localhost:7071/api/functionName


10
投票
  1. 将此添加到值下的 local.setting.json 文件中:“languageWorkers:node:arguments”: “--inspect=5858”
  2. 单击编辑配置。单击加号图标并选择 Attachto Node.js/Chrome
  3. 为选项填写这些值:host: localhost - Port: 5858 并将 Attac 设置为选项“Crhome 或 Nod.js>6.3 started with --inpect”
  4. 启动函数并运行调试器

看这张图:https://i.stack.imgur.com/hnC74.png


0
投票

为了更容易使用它,将以下行添加到 package.json

npm run build && func start --inspect=5858

然后需要设置调试工具以连接到端口 5858(数字并不重要)

使用此设置,您应该能够设置断点并像这样在调试模式下运行函数

yarn debug

并在进程启动并运行后单击调试按钮。

© www.soinside.com 2019 - 2024. All rights reserved.