我有一个CI / CD管道,在VSTS上有以下注意事项:
Web App是一个ASP.NET核心项目,托管在Azure上,带有“临时”插槽
暂存将连接到非生产/同步数据库以进行测试
Staging中的连接字符串将指向Staging DB
生产中的连接字符串将指向生产数据库
在进行热插拔时,连接字符串应保持与分段相同,因为它将成为新产品。
我面临的问题是在进行热插拔时,连接字符串将从Production Web App的应用程序设置中选取,该应用程序设置将指向生产数据库。
可以在Azure门户上的Azure Web App上的“应用程序设置”中更改连接字符串,但它需要重新启动 - 这将取消热插拔的价值!
有关如何在进行热插拔时替换连接字符串的任何提示。
PS:我们有Azure Portal的Web App中提到的连接字符串>应用程序设置
提前致谢!
修改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。
您可以添加应用程序和配置设置。