この記事では、Azure App Configuration でスナップショットを作成、使用、管理する方法について説明します。 スナップショットは、変更できない状態で格納されるアプリ構成設定のセットです。
[前提条件]
- "App Configuration ストアは、ストアを作成するためのチュートリアルに示されているように設置されています。"
- App Configuration ストアの "DataOwner" ロール。 スナップショットに必要なロールとアクセス許可の詳細
アプリ構成ストアにキー値を追加する
App Configuration ストアで、 Operations>Configuration エクスプローラー に移動し、次のキー値を追加します。 コンテンツ タイプは既定値のままにします。 Azure portal または CLI を使用してストアにキーと値を追加する方法の詳細については、キーと値の作成に関する記事を参照してください。
| 鍵 | 価値 | ラベル |
|---|---|---|
| app2/bgcolor | ライトグレー | label2 |
| app1/color | ブラック | ラベルなし |
| app1/color | 青い | label1 |
| app1/color | 緑色 | label2 |
| app1/color | 黄色 | label3 |
| app1/message | こんにちは | label1 |
| app1/message | こんにちは! | label2 |
| app2/message | おはようございます! | label1 |
スナップショットを作成する
[ 操作>スナップショット] で、[ 新しいスナップショットの作成] を選択します。
スナップショット名を入力し、必要に応じてタグも追加します。
[ 構成の種類の選択] で、既定値の キー (既定値) をそのまま使用します。
- キーコンポジションタイプでは、ストアに異なるラベルを持つ同じキーがある場合、最後に適用可能なフィルターで指定されたキー値のみがスナップショットに含まれます。 他のラベルと同じキー値はスナップショットから除外されます。
- Key-Label の合成タイプでは、ストアに異なるラベルを持つ同一のキーがある場合、指定されたフィルターに応じて、キーは同じでもラベルが異なるすべての Key-Value がスナップショットに含まれます。
[ フィルターの追加] を選択して、スナップショットのキー値を選択します。 フィルター処理は、キーとラベルに対して 等しい、で始まる、いずれか、およびすべてを選択することで行われます。 1 ~ 3 つのフィルターを入力できます。
- 最初のフィルターを追加します。
- [キー] で [Starts with] を選択し、「app1」と入力します
- [ ラベル] で [ 等しい ] を選択し、ドロップダウン メニューから label2 を選択します。
- 2 番目のフィルターを追加します。
- [キー] で [Starts with] を選択し、「app1」と入力します
- [ ラベル] で [ 等しい ] を選択し、ドロップダウン メニューから label1 を選択します。
- 最初のフィルターを追加します。
スナップショットをアーカイブする場合、既定では、アーカイブ後 30 日間保持されます。 必要に応じて、[ 回復オプション] で、アーカイブ後にスナップショットを使用できるリテンション日数を減らします。
注
スナップショットが作成された後は、保持期間の期間を更新できません。
[ 作成] を選択してスナップショットを生成します。 この例では、作成されたスナップショットに キー コンポジションの種類と以下のフィルターがあります。
- app1で始まりlabel2ラベルが付いているキー
- app1 で始まる、label1 ラベルを持つキー。
テーブルを調べて、指定されたパラメーターに基づいて、構成ストアのどのキー値が最終的にスナップショットに含まれるかを理解します。
鍵 価値 ラベル スナップショットに含まれる app2/bgcolor ライトグレー label2 いいえ: app1 では開始されません。 app1/color ブラック ラベルなし いいえ: ラベル label2 または label1 がありません。 app1/color 青い label1 はい: 該当するフィルターの最後から正しいラベル label1 があります。 app1/color 緑色 label2 いいえ: ラベル label1 が 2 番目のフィルターによって選択されているのと同じキーは、選択されたラベル label2 を持っているにもかかわらず、このキーをオーバーライドします。 app1/color 黄色 label3 いいえ: ラベル label2 または label1 がありません。 app1/message こんにちは label1 はい: 該当するフィルターの最後から正しいラベル label1 があります。 app1/message こんにちは! label2 いいえ: ラベル label1 が 2 番目のフィルターによって選択されているのと同じキーは、選択されたラベル label2 を持っているにもかかわらず、このキーをオーバーライドします。 app2/message おはようございます! label1 いいえ: app1 では開始されません。
サンプル スナップショットを作成する
サンプル スナップショットを作成し、スナップショット機能の動作を確認するには、スナップショット サンドボックスを使用します。 このサンドボックスには、スナップショットのコンポジションの種類とフィルターのしくみをより深く理解するために使用できるサンプル データが含まれています。
- Operations>Snapshots>Active スナップショットで、[サンドボックスでテスト] を選択します。
- 構成の種類と 1 つ以上のフィルターをフォームに入力して、サンプル データを確認し、スナップショットを作成する方法を確認します。
- [ 作成] を選択してサンプル スナップショットを生成します。
- [生成されたサンプル スナップショット] で生成されたスナップショットの結果を確認します。 サンプル スナップショットには、選択内容に従って、サンプル スナップショットに含まれるすべてのキーが表示されます。
スナップショットを使う
アプリケーションの構成には、任意の数のスナップショットを選択できます。 スナップショットを選択すると、そのすべてのキー値が追加されます。 構成に追加されると、スナップショットのキー値は他のキー値と同じように扱われます。
Azure App Configuration を使用するアプリケーションがある場合は、スナップショットを使用するように次のサンプル コードでアプリケーションを更新できます。 スナップショットの名前のみを指定する必要があり、これは大文字と小文字が区別されます。
AddAzureAppConfiguration メソッドの呼び出しを編集します。これは、アプリケーションの Program.cs ファイルでよく見られます。 アプリケーションがない場合は、 Azure App Configuration を使用した ASP.NET コア アプリの作成など、.NET クイック スタート ガイドのいずれかを参照できます。
構成にスナップショットを追加する
configurationBuilder.AddAzureAppConfiguration(options =>
{
string endpoint = Environment.GetEnvironmentVariable("Endpoint");
options.Connect(new Uri(endpoint), new DefaultAzureCredential());
// Select an existing snapshot by name. This will add all of the key-values from the snapshot to this application's configuration.
options.SelectSnapshot("SnapshotName");
// Other changes to options
});
注
スナップショットのサポートは、次のいずれかのパッケージのバージョン 7.0.0 以降を使用している場合に利用できます。
Microsoft.Extensions.Configuration.AzureAppConfigurationMicrosoft.Azure.AppConfiguration.AspNetCoreMicrosoft.Azure.AppConfiguration.Functions.Worker
注
上記のコード サンプルを使用して読み込むことができるのは、コンポジションの種類 Key で作成されたスナップショットのみです。
アクティブなスナップショットを管理する
[操作>スナップショット] のページには、アクティブなスナップショットとアーカイブされたスナップショットの 2 つのタブが表示されます。 [アクティブなスナップショット] を選択すると、App Configuration ストア内のすべてのアクティブなスナップショットの一覧が表示されます。
既存のスナップショットを表示する
[ アクティブなスナップショット ] タブで、既存のスナップショットの右側にある省略記号 ... を選択し、[ 表示 ] を選択してスナップショットを表示します。 この操作により、[スナップショットの詳細] ページが開き、スナップショットの設定とスナップショットに含まれるキー値が表示されます。
スナップショットをアーカイブする
[ アクティブなスナップショット ] タブで、既存のスナップショットの右側にある省略記号 ... を選択し、[ アーカイブ ] を選択してスナップショットをアーカイブします。 [ はい ] または [ いいえ] でキャンセルを選択して、アーカイブを確認します。 スナップショットがアーカイブされると、操作を確認する通知が表示され、アクティブなスナップショットの一覧が更新されます。
アーカイブされたスナップショットを管理する
Operations>Snapshots>Archived スナップショットに移動して、App Configuration ストア内のすべてのアーカイブ済みスナップショットの一覧を表示します。 アーカイブされたスナップショットは、作成時に選択された保持期間にアクセスできます。
アーカイブされたスナップショットを表示する
スナップショットの詳細ビューは、アーカイブ状態でも使用できます。 [ アーカイブされたスナップショット ] タブで、既存のスナップショットの右側にある省略記号 ... を選択し、[ 表示 ] を選択してスナップショットを表示します。 この操作により、[スナップショットの詳細] ページが開き、スナップショットの設定とスナップショットに含まれるキー値が表示されます。
アーカイブされたスナップショットを回復する
[ アーカイブされたスナップショット ] タブで、アーカイブされたスナップショットの右側にある省略記号 ... を選択し、[ 回復 ] を選択してスナップショットを回復します。 スナップショットが復旧されると、操作を確認する通知が表示され、アーカイブされたスナップショットの一覧が更新されます。