如何在本地启动 Azure 功能并通过 launch.json 和 tasks.json 将调试器附加到动态处理?
Posted
技术标签:
【中文标题】如何在本地启动 Azure 功能并通过 launch.json 和 tasks.json 将调试器附加到动态处理?【英文标题】:How to start Azure function locally and attach debugger to process dynamically via launch.json and tasks.json? 【发布时间】:2021-07-11 03:26:10 【问题描述】:在带有 Visual Studio Code 的 Mac 上使用 .NET Core,我试图在本地托管一个 Azure 函数,并将调试器附加到它。
手动,我可以通过使用func host start
启动函数,然后按下运行默认launch.json 文件的IDE 中的调试按钮来使其工作。由于"processId": "$command:pickProcess"
这一行,让我选择一个将调试器附加到的进程。
我想自动化这个流程,只需单击 VSCode 中的调试按钮即可触发它。
在上图中,我尝试通过在附加调试器之前运行preLaunchTask
来解决此问题。此任务应该托管并启动该功能 - 当与流隔离时它会成功执行此操作。
但是,当我使用上述配置点击 Debug 按钮时,VSCode 让我在实际完成 preLaunchTask
之前立即选择一个进程,因此进程 func
尚不可用。
我的思路有条理吗? 为了使它起作用,我可能缺少什么?
【问题讨论】:
【参考方案1】:VSCode 函数扩展就像一个魅力,问题是团队已经开始在 Visual Studio Windows 中使用这个解决方案,所以我必须适应它。
我没有注意到扩展程序附带的启动配置中的azureFunctions
部分!
我将launch.json
编辑为以下内容:
"name": "Attach to .NET Functions",
"type": "coreclr",
"request": "attach",
"processId": "$command:azureFunctions.pickProcess"
这似乎成功了!请注意,不再有preLaunchTask
。但是,主机启动,调试器连接!
谢谢@MartinBrandl!
【讨论】:
不客气!很高兴你能够解决它。 BR【参考方案2】:您可以尝试create the local Functions app with the Visual Studio Code Functions extension。当您使用扩展创建 Functions 应用程序时,它会自动将 VS Code 启动配置添加到您的项目中,该配置至少可以在我的机器上运行:-)。
我的配置和您的配置之间的一个区别是您可能会更改为的 processId:
"processId": "$command:azureFunctions.pickProcess"
【讨论】:
以上是关于如何在本地启动 Azure 功能并通过 launch.json 和 tasks.json 将调试器附加到动态处理?的主要内容,如果未能解决你的问题,请参考以下文章
设置配置并在本地运行 azure queue trigger 功能
如何通过 Visual Studio 修复功能应用发布中的错误