如何在转移到生产热交换时切换数据库连接

时间:2018-03-27 05:42:54

标签: azure azure-devops azure-web-sites continuous-deployment

我有一个CI / CD管道,在VSTS上有以下注意事项:

  • Web App是一个ASP.NET核心项目,托管在Azure上,带有“临时”插槽

  • 暂存将连接到非生产/同步数据库以进行测试

  • Staging中的连接字符串将指向Staging DB

  • 生产中的连接字符串将指向生产数据库

  • 在进行热插拔时,连接字符串应保持与分段相同,因为它将成为新产品。

我面临的问题是在进行热插拔时,连接字符串将从Production Web App的应用程序设置中选取,该应用程序设置将指向生产数据库。

可以在Azure门户上的Azure Web App上的“应用程序设置”中更改连接字符串,但它需要重新启动 - 这将取消热插拔的价值!

有关如何在进行热插拔时替换连接字符串的任何提示。

PS:我们有Azure Portal的Web App中提到的连接字符串>应用程序设置

提前致谢!

修改1:

以下是对我的考虑的描述:

enter image description here

1 个答案:

答案 0 :(得分:0)

请注意,如果您使用相同的应用服务计划,则一个环境可能会干扰另一个环境。考虑到这一点,并假设您正在使用发布经理,您可以:

1 - 在版本中创建两个独立的环境,一个用于分段,一个用于生产

2 - 在web.config中创建一个与连接字符串名称相同的变量,一个用于登台环境,另一个用于生产。

3 - 向每个环境添加“部署Azure应用服务”任务。

然后您可以使用文件转换和替换选项并标记以进行转换。它将使用您的变量的名称并将其替换为您的配置文件。看看XML转换和JSON转换https://docs.microsoft.com/en-us/vsts/build-release/tasks/transforms-variable-substitution?view=vsts

enter image description here

您可以添加应用程序和配置设置。

enter image description here