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

Dou*_*oug 2 javascript debugging node.js webstorm azure-functions

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

我尝试通过在WebStorm中设置运行配置以将JavaScript文件指向以下方式,使用与无服务器类似的技巧:

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

然后传递应用程序参数:

run myFunctionName --debug

这样可以使用Azure的工具成功运行这些功能,但是WebStorm都尝试设置调试端口。当Azure窗口打开时,它将设置自己的调试端口。

从Webstorm:

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进行调试吗?

Ahm*_*rif 7

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

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

  • 您还可以在运行该函数时使用“func start --language-worker -- --inspect=5858”,这将具有相同的结果。 (4认同)

Dou*_*oug 6

Azure-Functions-CLI重命名为azure-functions-core-tools。如果您仍然拥有Azure-Functions-CLI,请在本文结尾处查看我的旧版响应。

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

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

幸运的是,新的Beta版本的azure-functions-core工具没有C#的所有疯狂特性,因此无法在其他OS上运行,因此需要远程调试器。要安装该版本,可以使用:

npm i -g azure-functions-core-tools@core
Run Code Online (Sandbox Code Playgroud)

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

  1. 在WebStorm中,从运行->编辑配置中创建一个新的“ Node.JS”。
  2. 为调试指定一些名称。
  3. 将JavaScript文件设置为:〜\ AppData \ Roaming \ npm \ node_modules \ azure-functions-core-tools \ lib \ main.js

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

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

在此处输入图片说明

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

  2. 添加一些断点。

  3. 导航到您的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