Azure .Net Core Web 应用的部署变量
Deployment Variables for Azure .Net Core Web App
在将 .Net Core 2.0 Web 应用程序部署到 Azure 时,我无法从我的 CI/CD 管道获得所需的结果。
当我部署到我的测试环境时,一切正常。我已将设置 - ConnectionString:Main - link 添加到 Azure 门户中开发应用程序的 AppSettings 部分的正确数据库中。
我现在想部署到我的生产环境。问题是有两个生产数据库,其中只有一个是 "live" any any any any time。我想做的是创建两个发布定义,每个数据库一个,然后能够使用其中一个进行部署。
是否可以简单地添加一个版本变量来覆盖 AppSettings.json 中的本地连接字符串,就像以前的 .Net 版本一样,还是需要更复杂的解决方案?
在 Azure 上使用 ASP.NET 核心应用程序时,推荐的存储机密的方法是使用 Azure Key Vault。这确保没有凭据存储在版本控制或 VSTS 中。
如果您真的想在部署期间更新配置值,您可以标记您的参数并在部署期间替换它们。您可以使用 this marketplace task for that. Managing Config for .NET Core Web App Deployments with Tokenizer and ReplaceTokens Tasks 描述如何使用这些任务。
您应该能够通过 ARM template 创建部署并为每个环境创建不同的参数文件来完成此操作。使用该模板可以替换相关的应用程序设置,这会将它们注入到 Azure 门户应用程序设置中。这些设置将覆盖在存储库中签入配置文件的内容。
您可以使用Azure App Service Deploy任务的JSON variable substitution功能,例如,替换下面示例中的ConnectionString的值,您可以定义一个release/environment 变量作为发布定义中的 Data.DefaultConnection.ConnectionString
。
{
"Data": {
"DefaultConnection": {
"ConnectionString": "Server=(localdb)\SQLEXPRESS;Database=MyDB;Trusted_Connection=True"
}
}
}
在将 .Net Core 2.0 Web 应用程序部署到 Azure 时,我无法从我的 CI/CD 管道获得所需的结果。
当我部署到我的测试环境时,一切正常。我已将设置 - ConnectionString:Main - link 添加到 Azure 门户中开发应用程序的 AppSettings 部分的正确数据库中。
我现在想部署到我的生产环境。问题是有两个生产数据库,其中只有一个是 "live" any any any any time。我想做的是创建两个发布定义,每个数据库一个,然后能够使用其中一个进行部署。
是否可以简单地添加一个版本变量来覆盖 AppSettings.json 中的本地连接字符串,就像以前的 .Net 版本一样,还是需要更复杂的解决方案?
在 Azure 上使用 ASP.NET 核心应用程序时,推荐的存储机密的方法是使用 Azure Key Vault。这确保没有凭据存储在版本控制或 VSTS 中。
如果您真的想在部署期间更新配置值,您可以标记您的参数并在部署期间替换它们。您可以使用 this marketplace task for that. Managing Config for .NET Core Web App Deployments with Tokenizer and ReplaceTokens Tasks 描述如何使用这些任务。
您应该能够通过 ARM template 创建部署并为每个环境创建不同的参数文件来完成此操作。使用该模板可以替换相关的应用程序设置,这会将它们注入到 Azure 门户应用程序设置中。这些设置将覆盖在存储库中签入配置文件的内容。
您可以使用Azure App Service Deploy任务的JSON variable substitution功能,例如,替换下面示例中的ConnectionString的值,您可以定义一个release/environment 变量作为发布定义中的 Data.DefaultConnection.ConnectionString
。
{
"Data": {
"DefaultConnection": {
"ConnectionString": "Server=(localdb)\SQLEXPRESS;Database=MyDB;Trusted_Connection=True"
}
}
}