运行 本地多个 Azure Functions

Running multiple Azure Functions locally

我在 Visual Studio 2022 年有一个解决方案,其中包含多个 Azure Functions 项目。这些项目在 .NET 4.8 中使用函数 运行-time.

的 v1

在本地调试时,我希望所有功能应用程序都运行。我在我的解决方案配置中将它们全部设置为启动项目。我已经发现我可以通过在调试启动配置文件中设置命令行参数来更改函数应用程序的默认端口,就像这样。

问题是他们都想绑定到5858端口进行调试。其他研究发现了 --nodeDebugPort 论点。我将其添加到调试配置文件中,但是当我通过按 F5 从 Visual Studio 运行 时,他们仍然想使用 5858。但是,如果我从命令行使用以下命令 运行 他们命令他们将遵守调试端口设置。

..\..\..\node_modules\azure-functions-core-tools\bin\func host start --port 7072 --nodeDebugPort 5859

知道为什么调试端口参数在从 Visual Studio 中 运行ning 时被忽略,但在从命令行中 运行ning 时受到尊重吗?

Any idea why the debug port argument is ignored when running from Visual Studio but honored when running from command line?

根据 ahmelsayed 的建议,:

除了在命令行中使用 --nodeDebugPort 之外,您还可以在 local.settings.json:

中定义它
{
   "NodeDebugPort": 5859
}

其他参考文献:Two processes of func reusing the same configuration settings, and

您可以参考 GitHub 上的 nodeDebugPort 相关问题或打开一个新问题以进一步说明。

我的解决方案中有几个 Azure Functions,我使用 local.settings.json(每个函数)通过​​设置 LocalHttpPort 来配置它们,如下所示:

{
  "IsEncrypted": false,
  "Values": {
    ...
  },
  "Host": {
    "LocalHttpPort": 7073
  }
}

然后在 VS 中将解决方案配置为“多个启动项目”,然后选择您想要运行并行的那些功能应用程序。