首页 > 解决方案 > Azure Devops:为同一个项目部署多个 Webjobs 但不同的连接字符串

问题描述

我有一个场景,我需要从同一个项目(在 .net 核心中)创建 2 个 Web 作业。通过创建 2 个单独的构建工件(在构建管道中)并在发布任务中引用它,我能够轻松地做到这一点。每个 Web 作业自己使用不同的连接字符串。

这里的挑战是:如何在发布管道变量中配置连接字符串,因为连接字符串名称在 appsetting.json 文件中是相同的?有没有办法可以在每个发布任务中配置其各自连接字符串的值?

标签: azure-devopsazure-pipelines-release-pipeline

解决方案


您可以尝试在发布管道中使用多作业配置( Matrix )。

一个简单的例子:

  • 添加具有多个以逗号分隔的值的管道变量。

    在此处输入图像描述

  • 在管道中启用多作业配置。

    在此处输入图像描述

  • 运行管道。

    在此处输入图像描述

    在此处输入图像描述

[更新]

如果所有部署作业都有相同的步骤(任务)需要运行,而作业之间的差异只是这些任务上某些配置的输入值,您只需设置一个作业与这些步骤,并设置多个-value 管道变量,然后启用多作业配置功能。就像上面的例子一样。

如果部署作业有一些相同的步骤,但也有一些仅适用于某些作业的步骤。您也可以只设置一个包含所有步骤的作业并启用多作业配置功能。对于仅某些作业需要的步骤,您可以在这些步骤下指定一些条件,让它们仅在作业在指定配置上时运行。更多详细信息,您可以查看“指定条件”。

在包含多个作业的管道中,如果这些作业之间需要运行的大部分(甚至所有)步骤都相同,则可以使用多作业配置功能。此功能旨在避免在管道中的多个作业之间复制相同的步骤。您只需要设置一项作业并在管道中添加一次步骤。运行管道时,它会自动为每个配置复制作业。正如你在我上面的例子中看到的那样。


推荐阅读