次の方法で共有


ラベルを使用して、環境ごとの構成値を指定します。

多くのアプリケーションでは、環境ごとに異なる構成を使用する必要があります。 アプリケーションに、バックエンド データベースに使用するエンドポイントを定義する構成値があるとします。 アプリケーション開発者は、運用環境で使用されるデータベースとは異なるデータベースを使用します。 アプリケーションが開発から運用に移行するにつれて、アプリケーションが使用するデータベース エンドポイントを変更する必要があります。

Azure App Configuration では、 ラベル を使用して、同じキーに異なる値を定義できます。 たとえば、開発と運用の値が異なる 1 つのキーを定義できます。 App Configuration に接続するときに読み込むラベルを指定できます。

この機能を示すために、「 クイック スタート: Azure App Configuration を使用して ASP.NET Core アプリを作成 する」で作成した Web アプリを変更し、開発と運用に異なる構成設定を使用します。 続行する前に、クイック スタートを完了してください。

構成値を追加するときにラベルを指定する

Azure portal で 構成エクスプローラー に移動し、クイックスタートで作成した TestApp:Settings:FontColor キーを見つけます。 コンテキスト メニューを選択し、[ 値の追加] を選択します。

[値の追加] メニュー項目

[値の追加] 画面で、開発ラベルを入力します。 コンテンツ タイプは空のままにします。 を選択してを適用します。

指定したラベルを使用して構成値を読み込む

既定では、Azure App Configuration では、ラベルのない構成値のみが読み込まれます。 構成値のラベルを定義した場合は、App Configuration に接続するときに使用するラベルを指定します。

前のセクションでは、開発環境用に別の構成値を作成しました。 HostingEnvironment.EnvironmentName変数を使用して、アプリが現在実行されている環境を動的に決定します。 詳細については、「 ASP.NET Core で複数の環境を使用する」を参照してください。

KeyFilter クラスと LabelFilter クラスにアクセスするために、Microsoft.Extensions.Configuration.AzureAppConfiguration 名前空間への参照を追加します。

using Microsoft.Extensions.Configuration.AzureAppConfiguration;

環境名を Select メソッドに渡して、現在の環境に対応するラベルを使用して構成値を読み込みます。

var builder = WebApplication.CreateBuilder(args);

builder.Configuration.AddAzureAppConfiguration(options =>
    {
        string endpoint = Environment.GetEnvironmentVariable("Endpoint");
        options.Connect(new Uri(endpoint), new DefaultAzureCredential())
               // Load configuration values with no label
               .Select(KeyFilter.Any, LabelFilter.Null)
               // Override with any configuration values specific to current hosting env
               .Select(KeyFilter.Any, builder.Environment.EnvironmentName);
    });

Select メソッドは 2 回呼び出されます。 初めて、ラベルのない構成値を読み込みます。 次に、現在の環境に対応するラベルを使用して構成値を読み込みます。 これらの環境固有の値は、ラベルのない対応する値をオーバーライドします。 すべてのキーに環境固有の値を定義する必要はありません。 キーに現在の環境に対応するラベルを持つ値がない場合は、ラベルのない値が使用されます。

さまざまな環境でテストする

Properties ディレクトリの下にあるlaunchSettings.json ファイルを開きます。 [profiles] でconfigエントリを見つけます。 [ environmentVariables ] セクションで、 ASPNETCORE_ENVIRONMENT 変数を Production に設定します。

新しい値が設定されたら、アプリケーションをビルドして実行します。

dotnet build
dotnet run

Web ブラウザーを使用して、 http://localhost:5000に移動します。 フォントの色が黒であることがわかります。

運用構成で実行されている Web アプリケーション

launchSettings.jsonを更新して、ASPNETCORE_ENVIRONMENT変数をDevelopmentに設定します。 dotnet runをもう一度実行します。

フォントの色が赤になったことに気付くでしょう。 これは、アプリケーションが、Development ラベルを持つTestApp:Settings:FontColorの値を使用するためです。 その他の構成値はすべて、運用環境の値と同じままです。

開発構成で実行されている Web アプリケーション

次のステップ