ペアのキーと値を作成する
Azure App Configuration では、構成データがキーと値のペアとして格納されます。
キー
キーは、キーと値のペアの名前としての役割を果たし、対応する値を格納したり取得したりする際に使用されます。 区切り記号 (/ や : など) を使用して、階層型名前空間にキーを整理するのが一般的です。 実際のアプリケーションに最も適した規則を使用してください。 App Configuration は、キーを 1 つのまとまりとして扱います。 キーを解析してその名前がどのような構造になっているのかを推測したり、名前に対して規則を適用したりすることはありません。
コンポーネント サービスに基づいて階層的に構造化されたキー名の例を次に示します。
AppName:Service1:ApiEndpoint
AppName:Service2:ApiEndpoint
キー値に対する具体的な名前付けスキームは、アプリケーション フレームワークにおける構成データの使われ方で決まる場合があります。 たとえば、Java の Spring Cloud フレームワークでは、Spring アプリケーションの設定を指定する Environment リソースを定義します。 これらのリソースは、"アプリケーション名" と "プロファイル" が含まれている変数によってパラメーター化されます。 通常、Spring Cloud に関連した構成データのキーは、区切り記号でつながれた、この 2 つの要素で始まります。
App Configuration に格納されるキーは Unicode ベースの文字列で、大文字と小文字が区別されます。 App1 キーと App1 キーは、App Configuration ストア内で異なります。 アプリケーション内で構成設定を使用する際は、この点に留意してください。一部のフレームワークでは、構成キーの大文字と小文字が区別されないためです。
App Configuration に入力するキー名には、任意の Unicode 文字を使用できますが、*、,、\ は例外です。 これらの文字は予約されています。 予約文字を含める必要がある場合は、\{Reserved Character} を使用してエスケープする必要があります。 キーと値のペアにはサイズの上限があり、全部合わせて 10,000 文字までとなります。 この上限には、キーに使用されているすべての文字とその値、そして関連するすべてのオプション属性が含まれます。 キーには、この制限の範囲内で、いくつでも階層レベルを設けることができます。
キーの名前空間の設計
一般に、構成データに使用するキーには、フラット型と階層型の 2 とおりの命名方法があります。 アプリケーションの使用法の観点からは、これらの方法は似ていますが、階層的な名前付けには多くの利点があります。
- 読みやすい。 1 つの長く連続した文字とは違って、階層型のキー名では、区切り記号が文中のスペースの働きをします。
- 管理しやすい。 キー名の階層は、構成データの論理上のグループを表現します。
- 使いやすい。 階層構造からキーをパターンマッチングして構成データの一部だけを取得するようなクエリが書きやすくなります。
ラベルのキー
App Configuration のキー/値には、必要に応じてラベル属性を割り当てることができます。 ラベルは、同じキーを持つ複数のキー/値を区別する目的で使用されます。
ラベル A とラベル B を持つキー app1 は、App Configuration ストアに 2 つの異なるキーを形成します。 既定では、キー値にはラベルがありません。 ラベルがないキー値を明示的に参照する場合は、\0 (URL エンコード: %00) を使用してください。
ラベルは、キーのバリアントを作成するための便利な手段です。 ラベルは一般に、同じキーに対して複数の環境を指定する場合に使用します。
Key = AppName:DbEndpoint & Label = Test
Key = AppName:DbEndpoint & Label = Staging
Key = AppName:DbEndpoint & Label = Production
キー値のバージョンを管理する
キー値が変更されても App Configuration で自動的にバージョン管理されることはありません。 ラベルは、同じキー値の複数のバージョンを手動で作成する手段として使用します。 たとえば、アプリケーションのバージョン番号や Git のコミット ID をラベルとして入力すれば、特定のソフトウェア ビルドに関連付けられているキー値を識別することが可能です。
キー値を照会する
それぞれのキー/値は、対応するキーとラベル (\0 の場合もあり) によって一意に識別されます。 キー値は、パターンを指定して App Configuration ストアにクエリします。 App Configuration ストアからは、対応する値と属性を含む、そのパターンに一致するすべてのキー値が返されます。
値
キーに割り当てられる値も Unicode 文字列です。 値には、すべての Unicode 文字を使用できます。 それぞれの値には、ユーザー定義のコンテンツ タイプ (省略可) が関連付けられます。 この属性を使用して、アプリケーションが適切に処理するのに役立つ値に関する情報 (エンコード スキームなど) を格納します。
App Configuration ストアに格納される構成データ (すべてのキーと値を含む) は、保存時であれ転送中であれ暗号化されます。 App Configuration は、Azure Key Vault に取って代わるソリューションではありません。 アプリケーション シークレットを格納することは避けてください。