【问题标题】:Multiple azure function projects in a solution解决方案中的多个 Azure 功能项目
【发布时间】:2021-02-17 06:36:57
【问题描述】:

我有一个具有多个功能项目的 VS 解决方案。如果我在 VS 中运行解决方案构建,则一切正常,因为它将 bin 和 function.json 推送到相应的项目文件夹中。但是,当我在命令行中运行 msbuild 或 dotnet.exe 并输出到一个公共文件夹(例如:msbuild MB.Azure.sln -property:outdir=\msbuildout)时,我可以看到所有库都进入 bin 文件夹,但所有项目的 function.json 文件都被删除了除了构建链中构建的最后一个。

这是预期的行为吗?有什么方法可以让我仍然保留所有 function.JSON 文件?或者是否可以手动生成文件而不是系统自动生成?

-Srikanth

【问题讨论】:

    标签: azure-functions msbuild-task dotnet-build


    【解决方案1】:

    我怀疑您是否对所有项目使用相同的输出文件夹。

    除非您有特定要求将每个函数放在一个单独的项目中,否则我建议您在同一个项目中创建您的函数。只需为每个函数创建一个类文件。

    在您构建项目后,所有函数都会有一个文件夹,每个函数都包含相关的 function.json。

    【讨论】:

    • 是的,所有这些功能都在不同的项目中是有原因的。这有助于我的部署 - 避免重新部署未触及的功能,否则某些功能可能仍处于测试阶段..
    • 为了在函数应用程序上线之前测试(和批准)函数,您可以使用部署槽来拥有一个暂存“环境” - 您可以在 docs.microsoft.com/en-us/azure/azure-functions/… 阅读有关部署槽的更多信息 ?
    • 感谢@MMThornberg,我们正在使用部署槽。但主要思想是 - 仅部署您所做的更改,而不是其他更改。例如:某些功能可能有经过测试和批准的更改,但我们仍然不希望它们生效。如果所有功能都在同一个项目中,那么我无法控制这种情况。
    • 对于这种情况,您可以使用多个函数应用程序来提供您需要的分离。这不会影响成本。
    • 拥有多个功能应用程序对我们来说并不是最好的方法 - 因为如果所有功能都在一个地方,那么我们很有可能会更频繁地使用这些功能,而实习生会缩短我的热身时间.如果函数分散在多个函数中,那么某些函数可能不会像其他函数那样频繁地触发,从而导致它们需要更长的预热时间。
    猜你喜欢
    • 2019-07-29
    • 2016-05-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多