スナップショット
スナップショットは、App Configuration ストアの Key-Value の名前付きの不変サブセットです。 スナップショットを構成する Key-Value は、作成時にキー フィルターとラベル フィルターを使用して選択されます。 スナップショットが作成されると、その中の Key-Value は変更されないことが保証されます。
この動画では、スナップショットが役に立つ可能性がある 3 つの理由について簡単に説明します。
スナップショットを使用して安全にデプロイする
スナップショットは、構成変更を安全にデプロイするように設計されています。 不完全な構成変更を実行環境にデプロイすると、サービスの中断やデータ損失などの問題が発生する可能性があります。 このような問題を回避するには、運用環境に移行する前に構成の変更を精査できることが重要です。 このような問題が発生した場合、サービスを復元するために、不完全な構成変更をロールバックできることが重要です。 スナップショットは、これらのシナリオを管理するために作成されます。
構成の変更は、制御された一貫した方法でデプロイする必要があります。 開発者はスナップショットを使用して、制御されたロールアウトを実行できます。 制御されたロールアウトを開始するためにアプリケーションで必要な唯一の変更は、アプリケーションが参照しているスナップショットの名前を更新することです。 アプリケーションが運用環境に移行しても、参照されるスナップショットの構成が変更されないことが保証されます。 スナップショットの変更に対するこの保証により、予期せぬ設定が実稼働環境に侵入することを防ぎます。 スナップショットの不変性と参照の容易さにより、適切な構成変更セットが安全にロールアウトされることを簡単に確認できます。
スナップショットを使用するためのシナリオ
制御されたロールアウト: スナップショットは不変の性質があるため、制御されたロールアウトのサポートに適しています。 開発者が構成にスナップショットを利用すると、リリースがロールアウトのさまざまな段階を経ても構成が変更されないことを確信できます。
前回正常起動時 (LKG) の構成: スナップショットを使用して、構成の安全なデプロイ プラクティスをサポートできます。 スナップショットを使用すると、開発者は、デプロイ中に問題が発生した場合に、前回正常起動時 (LKG) 構成をロールバックに利用できることを確認できます。
構成のバージョン管理: スナップショットを使用して構成設定のバージョン履歴を作成し、リリース バージョンと同期できます。 各スナップショットでキャプチャされた設定を比較して、バージョン間の変更を特定できます。
監査: スナップショットは監査とコンプライアンスの目的に使用できます。 開発者は、リリースのスナップショットを使用して、リリース間の構成変更の記録を維持できます。
テスト環境とステージング環境: スナップショットを使用して、一貫したテスト環境とステージング環境を作成できます。 開発者は、同じスナップショットを使用することで、異なる環境間で同じ構成が使用されていることを確認でき、デバッグやテストに役立ちます。
簡素化されたクライアント構成の合成: 通常、App Configuration のクライアントには、App Configuration インスタンスからの Key-Value のサブセットが必要です。 必要な Key-Value のセットを取得するには、クエリ ロジックをコードで記述する必要があります。 スナップショットは作成時のフィルターの提供をサポートしているため、クライアントは必要な Key-Value のセットを名前で参照できるため、クライアントの構成が簡素化されます。
スナップショット操作
スナップショットは不変エンティティであるため、スナップショットは作成およびアーカイブのみ可能です。 削除、パージ、編集はできません。
スナップショットの作成: キー フィルターとラベル フィルターを定義して、App Configuration インスタンスから必要な Key-Value をキャプチャすることで、スナップショットを作成できます。 フィルター処理された Key-Value は、作成時に指定された名前のスナップショットとして保存されます。
スナップショットのアーカイブ: スナップショットをアーカイブすると、アーカイブされた状態になります。 スナップショットはアーカイブされている間も、完全に機能します。 スナップショットがアーカイブされると、スナップショットの作成時に構成された保持期間に基づいて有効期限が設定されます。 スナップショットが有効期限までアーカイブされた状態に留まる場合、有効期限が経過するとスナップショットはシステムから自動的に消えます。 アーカイブは、使用されなくなったスナップショットを段階的に廃止するために使用されます。
スナップショットの回復: スナップショットを回復すると、スナップショットがアクティブな状態に戻ります。 この時点で、スナップショットは、構成された保持期間に基づいて有効期限切れになりません。 回復は、アーカイブ後の保存期間中にのみ可能です。
Note
保持期間はスナップショットの作成時にのみ設定できます。 保持期間の既定値は、Standard ストアの場合は 30 日、Free ストアの場合は 7 日です。
スナップショット操作の要件
以下のセクションでは、Microsoft Entra ID と HMAC 認証を使ってスナップショット関連の操作を実行するために必要なアクセス許可について詳しく説明します。
スナップショットの作成
Microsoft Entra 認証を使ってストアでスナップショットを作成するには、次のアクセス許可が必要です。 App Configuration Data Owner ロールには、これらのアクセス許可がすでに付与されています。
Microsoft.AppConfiguration/configurationStores/keyvalues/read
Microsoft.AppConfiguration/configurationStores/snapshots/write
HMAC 認証を使用してスナップショットを作成するには、読み取り/書き込みアクセス キーを使用する必要があります。
スナップショットのアーカイブと回復
Microsoft Entra 認証を使ってスナップショットをアーカイブおよび回復するには、次のアクセス許可が必要です。 App Configuration Data Owner ロールには、このアクセス許可がすでに付与されています。
Microsoft.AppConfiguration/configurationStores/snapshots/archive/action
HMAC 認証を使用してスナップショットをアーカイブおよび/または回復するには、読み取り/書き込みアクセス キーを使用する必要があります。
スナップショットの読み取りと一覧表示
すべてのスナップショットの一覧を表示したり、名前を指定して個々のスナップショット内のすべてのキーと値を取得したりするには、Microsoft Entra 認証を利用するストアに対する次のアクセス許可が必要です。 組み込みのデータ所有者ロールとデータ閲覧者ロールには、すでにこのアクセス許可が与えられています。
Microsoft.AppConfiguration/configurationStores/snapshots/read
HMAC 認証を使用するストアの場合、"スナップショットの読み取り" 操作 (スナップショットからキーと値を読み取る) と "スナップショットの一覧表示" 操作の両方を、読み取り/書き込みアクセス キーまたは読み取り専用アクセス キーを使用して実行できます。
請求に関する考慮事項と制限
App Configuration には、Free、Standard、Premium の 3 つのレベルがあります。 各レベルのスナップショット クォータについては、次の詳細を確認してください。
Free レベル: このレベルのスナップショット ストレージ クォータは 10 MB です。 すべてのアクティブなスナップショットとアーカイブされたスナップショットの合計ストレージ サイズが 10 MB 未満であれば、可能な限り多くのスナップショットを作成できます。
Standard レベル: このレベルのスナップショット ストレージ クォータは 1 GB です。 すべてのアクティブなスナップショットとアーカイブされたスナップショットの合計ストレージ サイズが 1 GB 未満であれば、可能な限り多くのスナップショットを作成できます。
Premium レベル: このレベルのスナップショット ストレージ クォータは 4 GB です。 すべてのアクティブなスナップショットとアーカイブされたスナップショットの合計ストレージ サイズが 4 GB 未満であれば、可能な限り多くのスナップショットを作成できます。
スナップショットの最大サイズは 1 MB です。