現在、_launchSettings.json
_ファイルを使用してアプリケーションの環境変数を管理しようとしているため、_Setup.cs
_ファイルはenv.IsDevelopmentEnvironment()
などの方法で環境を管理できます。
VSTSでは、Azure Deploymentタスクで環境変数_ASPNETCORE_ENVIRONMENT
_を設定するにはどうすればよいですか?または、ビルドステップで取得した_dotnet publish
_タスクに入れる必要がありますか?
展開プロセスをi等に保ちたい場合は、この展開手順を使用してAzure Webアプリに設定することをお勧めします。
技術的には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。{environment} .jsonファイルをトークン化する代わりに、リリース時にASPNETCORE_ENVIRONMENTと同様にすべてのappsettings.json変数をオーバーライドします。 VSTSリリース変数名で正しい命名規則を使用することで、環境変数でオーバーライドできます。
たとえば、appsettings.jsonの構造が次の場合:
{
settings: {
secret: {
foo: "bar"
}
}
}
次のようなリリース変数でオーバーライドできます。
appsetting.settings:secret:foo = "bar"
次に、デプロイ後にAzure Webアプリで$ env:settings:secret:fooを確認します
ソースで追加の操作を行ったり、Web展開パッケージをzip圧縮したり、構成ファイルをトークン化したり、msdeployの前に再圧縮したりすることなく、環境固有の構成を取得しました。
Replace Token 拡張機能をインストールしてから、ビルド/リリース定義にReplace Tokenタスクを追加できます。このタスクは、ファイル内の文字列を、ビルド/リリース定義で追加した変数値に置き換えることができます。