azure-functions-cli offers a way to kickoff debugging,但这些指令似乎是Visual Studio特定的。
我尝试使用类似于无服务器的技巧,在WebStorm中设置一个运行配置,将JavaScript文件指向:\node_modules\azure-functions-cli\lib\main.js
然后传递Application args: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进行调试?
3条答案
按热度按时间jgwigjjp1#
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#疯狂,阻止它在其他操作系统上运行,并需要一个远程调试器。要安装该版本,您可以用途:
安装了这个版本后,你就可以用标准的Node运行时启动了。
1.在WebStorm中,从Run -〉Edit Configurations创建一个新的“Node.JS”。
1.给调试指定某种类型的名称。
1.将JavaScript文件设置为:~\AppData\Roaming\npm\node_modules\azure-functions-core-tools\lib\main。js
注意:以上假设您在具有全局标志的Windows计算机上安装了Azure Functions。
1.将应用程序参数设置为:start --debug VSCODE
1.编辑文件“”。vscode\launch。json”,并将节点的调试端口更改为9229。
1.在WebStorm中选择Run-〉Debug:“What_You_Named_the_Remote_Profile”
1.添加一些断点。
1.导航到您的API端点并查看断点是否工作。
注意:默认情况下,函数将位于http://localhost:7071/api/functionName
好吧,看起来你不能用本地调试来做这件事,但是可以用WebStorm中的“远程调试”来做。
1.在WebStorm中,从Run -〉Edit Configurations创建一个新的“Node.JS远程调试”。
1.给调试指定某种类型的名称。
1.点击“+”号,上面写着“发射前:外部工具”,然后选择“运行外部工具”。
1.再次点击+ Sign并像屏幕截图一样填写(假设您全局安装了Azure Function CLI)。
注意:以上屏幕截图已根据最新版本的Azure Functions CLI/进行更新。早期版本要求您声明应用程序名称,并且不需要--debug进行调试。因此,如果您没有更新到最新版本的Azure Functions CLI(现在称为Azure-Functions-Core-Tools),则可能需要在“参数”字段中设置“运行MyApp”。
1.在WebStorm中选择Run-〉Debug:“What_You_Named_the_Remote_Profile”
1.添加一些断点。
1.导航到您的API端点并查看断点是否工作。
注意:默认情况下,函数将为http://localhost:7071/api/functionName
mec1mxoz2#
1.将此添加到您的本地。setting.json文件中的值:“languageWorkers:node:arguments”:“--inspect=5858”
1.单击编辑配置。单击加号图标并选择“附加到节点”。js/Chrome
1.为选项填写以下值:host:localhost -端口:5858并将Attac设置为“Crhome or Nod.js〉6.3开始于--inpect”
1.启动函数并运行调试器
看这张图:https://i.stack.imgur.com/hnC74.png
gywdnpxw3#
为了使它更容易使用它,有必要在包中添加以下行。json
然后需要设置调试工具以连接到端口5858(数字并不重要)
有了这个设置,你应该能够设置断点,并像这样在调试模式下运行你的函数
并点击调试按钮后,进程启动和运行。