具有多个环境的Azure管道

时间:2020-02-04 01:01:40

标签: .net-core azure-devops azure-pipelines

我的 dotnetcore 应用在每个环境中都有一个appsettings.json(例如, appsettings.json appsettings.Development.json ),我会喜欢在我的管道中利用此优势。

我看到了管道的两个选项:

Build Artifact for Dev -> Deploy on Dev -> Build Artifact for Prod -> Deploy on Prod

Build Artifact -> Deploy on Dev -> Deploy on Prod

对于第一个选项,我可以将环境设置为构建的参数。

对于第二个选项,我如何才能仅构建一次应用程序,并根据当前部署步骤设置环境?利用我拥有的多个 appsettings.json

最后,这些方法是否与最佳做法保持一致?如果没有,对于具有多个环境的管道,最佳做法是什么?

2 个答案:

答案 0 :(得分:1)

通常,我们可以生成单个工件,然后将其部署到不同的环境,并在其自己的阶段发布阶段中的任何环境下执行不同的转换。这意味着我们可以在每个发行版环境中更改和覆盖appsettings.json中定义的设置。

有关如何使用.json文件进行转换的信息,请参考File transforms and variable substitution reference

此外,我们可以尝试安装Replace Tokens扩展名,然后使用Replace Tokens任务加载和更改每个发行环境/阶段中appsettings.json文件中定义的设置。

您还可以转换设置或使用File Creator创建新的appsettings.json文件来覆盖现有文件。

以下博客供您参考:

答案 1 :(得分:0)

您可以使用Azure AppConfiguration并将其添加为配置的额外来源。这样,您的构建/发布过程就变得非常简单。

请参阅此文档:https://docs.microsoft.com/en-us/azure/azure-app-configuration/enable-dynamic-configuration-dotnet-core

它非常强大:您只能选择部分配置(通过过滤器),可以具有功能标志,并且可以具有机密(来自链接的密钥库)。