[英].NET Core - Set Environment Variable in Azure Deployment Task
我目前正在嘗試使用launchSettings.json
文件來管理應用程序的環境變量,因此我的Setup.cs
文件可以通過env.IsDevelopmentEnvironment()
等方式管理環境。
在VSTS中,如何在Azure部署任務上設置環境變量ASPNETCORE_ENVIRONMENT
? 或者它應該進入我的構建步驟中的dotnet publish
任務?
因為ASPNETCORE_ENVIRONMENT
是一個環境變量,所以您只需在Azure上指定它即可。
請參閱有關在Azure上定義環境變量的方式和位置的Stack Overflow答案。
如果您希望保持部署過程是冪等的,我建議使用此部署步驟在Azure Web App上進行設置。
從技術上講,它還將發布設置添加到web.config,這對於核心應用程序來說不是必需的,但重要的是,它還為Azure主機設置了環境變量。
如果您已指定在Startup.cs中使用環境變量:
public Startup(IHostingEnvironment env)
{
var builder = new ConfigurationBuilder()
.SetBasePath(env.ContentRootPath)
.AddJsonFile("appsettings.json", optional: true, reloadOnChange: true)
.AddEnvironmentVariables(); //override settings with environment variables
var config = builder.Build();
Configuration = config;
}
因此,如果你有一個發布變量:appsetting.ASPNETCORE_ENVIRONMENT = Release,你會發現如果你通過Kudu上的PowerShell控制台進行檢查,$ env:ASPNETCORE_ENVIRONMENT確實會是“Release”。
我實際上使用此擴展來在發布時覆蓋我的所有appsettings.json變量以及ASPNETCORE_ENVIRONMENT,而不是令人注意一些appsettings。{environment} .json文件。 我可以通過在我的VSTS版本變量名稱中使用正確的命名約定來覆蓋環境變量。
例如,如果我的appsettings.json具有以下結構:
{ settings: { secret: { foo: "bar" } } }
我可以使用釋放變量覆蓋,例如:
appsetting.settings:secret:foo =“bar”
然后在部署后檢查Azure Web App上的$ env:settings:secret:foo
在我的源代碼中沒有做任何額外的操作或者解壓縮Web部署包,標記化配置文件然后在msdeploy之前重新壓縮,我有特定於環境的配置。
您可以安裝Replace Token擴展,然后在構建/發布定義中添加Replace Token任務。 此任務可以使用您在構建/發布定義中添加的變量值替換文件中的字符串。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.