スナップショットの管理と使用
この記事では、Azure App Configuration でスナップショットを作成、使用、管理する方法について説明します。 スナップショットは、不変の状態で保存される一連の App Configuration 設定です。
前提条件
- App Configuration ストア。 ストアを作成する。
- App Configuration ストアの "DataOwner" ロール。 スナップショットに必要なロールとアクセス許可の詳細
Key-Value を App Configuration ストアに追加する
App Configuration ストアで、[操作]>[構成エクスプローラー] に移動し、次の Key-Value を追加します。 コンテンツ タイプは既定値のままにします。 Azure portal または CLI を使用してストアにキーと値を追加する方法の詳細については、キーと値の作成に関する記事を参照してください。
キー | 値 | Label |
---|---|---|
app2/bgcolor | 薄い灰色 | label2 |
app1/color | Black | ラベルなし |
app1/color | 青 | label1 |
app1/color | 緑 | label2 |
app1/color | 黄 | label3 |
app1/message | Hello | label1 |
app1/message | こんにちは。 | label2 |
app2/message | おはようございます! | label1 |
スナップショットの作成
[操作]>[スナップショット] で [新しいスナップショットの作成] を選択します。
スナップショット名を入力し、必要に応じてタグも追加します。
[合成タイプの選択] では、既定値 [キー (既定値)] のままにします。
- キー合成タイプでは、ストアに異なるラベルを持つ同一のキーがある場合、最後に適用可能なフィルターで指定されたキーと値のみがスナップショットに含まれます。 他のラベルと同じ Key-Value はスナップショットから除外されます。
- Key-Label の合成タイプでは、ストアに異なるラベルを持つ同一のキーがある場合、指定されたフィルターに応じて、キーは同じだがラベルが異なるすべての Key-Value がスナップショットに含まれます。
[フィルターの追加] を選択して、スナップショットの Key-Value を選択します。 フィルター処理は、キーとラベルに対して次のフィルターを選択することによって行われます: [Equals]、[Starts with]、[Any of]、[All]。 1 ~ 3 つのフィルターを入力できます。
- 最初のフィルターを追加します。
- [キー] で [Starts with] を選択し、「app1」と入力します
- [ラベル] で [Equals] を選択し、ドロップダウン メニューから [label2] を選択します。
- 2 番目のフィルターを追加します。
- [キー] で [Starts with] を選択し、「app1」と入力します
- [ラベル] で [Equals] を選択し、ドロップダウン メニューから [label1] を選択します。
- 最初のフィルターを追加します。
スナップショットをアーカイブすると、既定では、アーカイブ後 30 日間保持されます。 必要に応じて、[回復オプション] で、アーカイブ後にスナップショットを使用できる保持日数を減らします。
Note
スナップショットが作成されると、保持期間は更新できません。
[作成] を選択してスナップショットを生成します。 この例では、作成されたスナップショットにはキー合成タイプと以下のフィルターがあります。
- app1 で始まり、label2 ラベルが付いたキー
- app1 で始まり、label1 ラベルが付いたキー。
テーブルを確認して、指定されたパラメーターに基づいて、構成ストアのどの Key-Value がスナップショットに含まれるかを理解します。
Key 値 Label スナップショットに含まれる app2/bgcolor 薄い灰色 label2 いいえ: app1 で始まりません。 app1/color Black ラベルなし いいえ: ラベル label2 または label1 がありません。 app1/color 青 label1 はい: 該当するフィルターの最後から正しいラベル label1 があります。 app1/color 緑 label2 いいえ: 2 番目のフィルターで選択されたラベル label1 と同じキーは、選択されたラベル label2 を持っていますが、このキーをオーバーライドします。 app1/color 黄 label3 いいえ: ラベル label2 または label1 がありません。 app1/message Hello label1 はい: 該当するフィルターの最後から正しいラベル label1 があります。 app1/message こんにちは。 label2 いいえ: 2 番目のフィルターで選択されたラベル label1 と同じキーは、選択されたラベル label2 を持っていますが、このキーをオーバーライドします。 app2/message おはようございます! label1 いいえ: app1 で始まりません。
サンプル スナップショットを作成する
サンプル スナップショットを作成し、スナップショット機能がどのように動作するかを確認するには、スナップショット サンドボックスを使用します。 このサンドボックスには、スナップショットの合成タイプとフィルターがどのように機能するかをより深く理解するために使用できるサンプル データが含まれています。
- [操作]>[スナップショット]>[アクティブなスナップショット] で、[サンドボックスでテスト] を選択します。
- サンプル データを確認し、合成タイプと 1 つ以上のフィルターをフォームに入力してスナップショットの作成を練習します。
- [作成] を選択してサンプル スナップショットを生成します。
- [生成されたサンプル スナップショット] で生成されたスナップショットの結果を確認します。 サンプル スナップショットには、選択に応じて、サンプル スナップショットに含まれるすべてのキーが表示されます。
スナップショットを使う
アプリケーションの構成には、任意の数のスナップショットを選ぶことができます。 スナップショットを選ぶと、そのキー値がすべて追加されます。 構成に追加されると、スナップショットのキー値は他のキー値と同じように扱われます。
Azure App Configuration を使ったアプリケーションがある場合は、次のサンプル コードで、スナップショットを使うようにそれを更新することができます。 指定する必要があるのはスナップショットの名前のみです。この名前では、大文字と小文字を区別します。
AddAzureAppConfiguration
メソッドの呼び出しを編集します。これは、アプリケーションの Program.cs
ファイルでよく見られます。 アプリケーションがない場合は、Azure App Configuration を使った ASP.NET コア アプリの作成など、.NET クイックスタート ガイドのいずれかを参照できます。
構成にスナップショットを追加する
configurationBuilder.AddAzureAppConfiguration(options =>
{
options.Connect(Environment.GetEnvironmentVariable("ConnectionString"));
// 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
});
Note
スナップショットのサポートは、次のいずれかのパッケージのバージョン 7.0.0 以降を使用している場合に利用できます。
Microsoft.Extensions.Configuration.AzureAppConfiguration
Microsoft.Azure.AppConfiguration.AspNetCore
Microsoft.Azure.AppConfiguration.Functions.Worker
Note
上記のコード サンプルを使用して、合成の種類 Key
で作成されたスナップショットのみを読み込むことができます。
アクティブなスナップショットを管理する
[操作]>[スナップショット] ページの下には、[アクティブなスナップショット] と [アーカイブされたスナップショット] の 2 つのタブが表示されます。 [アクティブなスナップショット] を選択して、App Configuration ストア内のすべてのアクティブなスナップショットのリストを表示します。
既存のスナップショットを表示する
[アクティブなスナップショット] タブで、既存のスナップショットの右側にある省略記号 ... を選択し、[表示] を選択してスナップショットを表示します。 この操作により、スナップショットの設定とスナップショットに含まれる Key-Value が表示されるスナップショットの詳細ページが開きます。
スナップショットをアーカイブする
[アーカイブされたスナップショット] タブで、既存のスナップショットの右側にある省略記号 ... を選択し、[アーカイブ] を選択してスナップショットをアーカイブします。 [はい] を選択してアーカイブを確認するか、[いいえ] でキャンセルします。 スナップショットがアーカイブされると、操作を確認する通知が表示され、アクティブなスナップショットのリストが更新されます。
アーカイブされたスナップショットを管理する
[操作]>[スナップショット]>[アーカイブされたスナップショット] に移動して、App Configuration ストア内のすべてのアーカイブされたスナップショットのリストを表示します。 アーカイブされたスナップショットは、作成時に選択した保存期間中は引き続きアクセスできます。
アーカイブされたスナップショットを表示する
スナップショットの詳細ビューは、アーカイブ状態でも利用できます。 [アーカイブされたスナップショット] タブで、既存のスナップショットの右側にある省略記号 ... を選択し、[表示] を選択してスナップショットを表示します。 この操作により、スナップショットの設定とスナップショットに含まれる Key-Value が表示されるスナップショットの詳細ページが開きます。
アーカイブされたスナップショットを回復する
[アーカイブされたスナップショット] タブで、アーカイブされたスナップショットの右側にある省略記号 ... を選択し、[回復] を選択してスナップショットを回復します。 スナップショットが回復されると、操作を確認する通知が表示され、アーカイブされたスナップショットのリストが更新されます。