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进行调试吗?
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
安装了该版本后,您可以使用良好的'ol标准Node运行时来启动程序。
在WebStorm中,从运行->编辑配置中创建一个新的“ Node.JS”。
为调试指定一些名称。
将JavaScript文件设置为:〜\ AppData \ Roaming \ npm \ node_modules \ azure-functions-core-tools \ lib \ main.js
注意:以上假定您已在具有全局标志的Windows计算机上安装了Azure Functions。
将应用程序参数设置为:start --debug VSCODE
在WebStorm中,选择“运行”->“调试”:“ What_You_Named_the_Remote_Profile”
添加一些断点。
导航到您的API端点,然后查看断点是否起作用。
注意:默认情况下,该函数出现在http:// localhost:7071 / api / functionName
-------------------编辑但后代保持不变--------------
好的,您似乎无法使用本地调试来执行此操作,但是可以使用WebStorm中的“远程调试”来执行此操作。
在WebStorm中,从运行->编辑配置中创建一个新的“ Node.JS远程调试”。
为调试指定一些名称。
点击+号,上面写着“启动前:外部工具”,然后选择“运行外部工具”。
再次单击+符号,然后将其填写,如屏幕截图所示(这是假定您已全局安装Azure Function CLI)。
注意:上面的屏幕快照已基于Azure Functions CLI /的最新版本进行了更新。早期版本要求您声明应用程序名称,并且不需要--debug进行调试。因此,如果您没有更新到最新版本的Azure Functions CLI(现在称为Azure-Functions-Core-Tools),则可能需要在“参数”字段中“运行MyApp”。
在WebStorm中,选择“运行”->“调试”:“ What_You_Named_the_Remote_Profile”
添加一些断点。
导航到您的API端点,然后查看断点是否起作用。
注意:默认情况下,该函数出现在http:// localhost:7071 / api / functionName