Share via


コンテンツ タイプを使って App Configuration に JSON キー値を格納する

データはキー値として App Configuration に格納されます。その値は既定で文字列型として扱われます。 ただし、各キー値に関連付けられたコンテンツ タイプ プロパティを使うことで、カスタム タイプを指定できます。 このプロセスでは、元のデータ型を保持することや、コンテンツ タイプに基づいてアプリケーションの動作を変えることができます。

概要

App Configuration では、キー値のコンテンツ タイプとして JSON メディア タイプを使用して、次のような利点を活用することができます。

  • よりシンプルなデータ管理: Azure portal での配列などのキー値の管理がはるかに簡単になります。
  • 強化されたデータのエクスポート: データのエクスポート中に、プリミティブ型、配列、および JSON オブジェクトが保持されます。
  • App Configuration プロバイダーでのネイティブ サポート: アプリケーションで App Configuration プロバイダー ライブラリによって使用される場合、JSON コンテンツ タイプのキー値は正常に動作します。

有効な JSON コンテンツ タイプ

ここに定義されているメディア タイプは、各キー値に関連付けられているコンテンツ タイプに割り当てることができます。 メディア タイプはタイプとサブタイプで構成されます。 タイプが application で、サブタイプ (またはサフィックス) が json の場合、メディア タイプは有効な JSON コンテンツ タイプと見なされます。 有効な JSON コンテンツ タイプの例を次に示します。

  • application/json
  • application/activity+json
  • application/vnd.foobar+json;charset=utf-8

有効な JSON 値

キー値に JSON コンテンツ タイプがある場合、その値は、クライアントで正しく処理するために有効な JSON 形式である必要があります。 そうでない場合、クライアントで正しく処理できないか、あるいはフォール バックされ、文字列形式として扱われる可能性があります。 有効な JSON 値の例をいくつか以下に示します。

  • "John Doe"
  • 723
  • false
  • null
  • "2020-01-01T12:34:56.789Z"
  • [1, 2, 3, 4]
  • {"ObjectSetting":{"Targeting":{"Default":true,"Level":"Information"}}}

注意

この記事の残りの部分では、有効な JSON コンテンツ タイプと有効な JSON 値がある App Configuration のキー値はすべて、JSON キー値と呼ばれます。

このチュートリアルでは、次の方法について説明します。

  • App Configuration に JSON キー値を作成する。
  • JSON ファイルから JSON キー値をインポートする。
  • JSON キー値を JSON ファイルにエクスポートする。
  • アプリケーションで JSON キー値を使用する。

Azure サブスクリプションをお持ちでない場合は、開始する前に Azure 無料アカウントを作成してください。

前提条件

  • Azure Cloud Shell で Bash 環境を使用します。 詳細については、「Azure Cloud Shell の Bash のクイックスタート」を参照してください。

  • CLI リファレンス コマンドをローカルで実行する場合、Azure CLI をインストールします。 Windows または macOS で実行している場合は、Docker コンテナーで Azure CLI を実行することを検討してください。 詳細については、「Docker コンテナーで Azure CLI を実行する方法」を参照してください。

    • ローカル インストールを使用する場合は、az login コマンドを使用して Azure CLI にサインインします。 認証プロセスを完了するには、ターミナルに表示される手順に従います。 その他のサインイン オプションについては、Azure CLI でのサインインに関するページを参照してください。

    • 初回使用時にインストールを求められたら、Azure CLI 拡張機能をインストールします。 拡張機能の詳細については、Azure CLI で拡張機能を使用する方法に関するページを参照してください。

    • az version を実行し、インストールされているバージョンおよび依存ライブラリを検索します。 最新バージョンにアップグレードするには、az upgrade を実行します。

  • App Configuration ストア。 ストアを作成する
  • このチュートリアルには、Azure CLI のバージョン 2.10.0 以降が必要です。 Azure Cloud Shell を使用している場合は、最新バージョンが既にインストールされています。

App Configuration で JSON キー値を作成する

JSON キー値は、Azure portal または Azure CLI を使用するか、JSON ファイルからインポートすることによって作成できます。 このセクションでは、3 つの方法をすべて使用して、同じ JSON キー値を作成する手順について説明します。

Azure portal を使用して JSON キー値を作成する

App Configuration ストアに次のキーと値を追加します。 [ラベル] は既定値のままにします。 Azure portal または CLI を使用してストアにキーと値を追加する方法の詳細については、キーと値の作成に関する記事を参照してください。

キー コンテンツの種類
Settings:BackgroundColor "Green" application/json
Settings:FontSize 24 application/json
Settings:UseDefaultRouting false application/json
Settings:BlockedUsers null application/json
Settings:ReleaseDate "2020-08-04T12:34:56.789Z" application/json
Settings:RolloutPercentage [25,50,75,100] application/json
Settings:Logging {"Test":{"Level":"Debug"},"Prod":{"Level":"Warning"}} application/json
  1. [適用] を選択します。

Azure CLI を使用して JSON キー値を作成する

次のコマンドにより、App Configuration ストアに JSON キー値が作成されます。 <appconfig_name> は、ご自分の App Configuration ストアの名前に置き換えてください。

appConfigName=<appconfig_name>
az appconfig kv set -n $appConfigName --content-type application/json --key Settings:BackgroundColor --value \"Green\"
az appconfig kv set -n $appConfigName --content-type application/json --key Settings:FontSize --value 24
az appconfig kv set -n $appConfigName --content-type application/json --key Settings:UseDefaultRouting --value false
az appconfig kv set -n $appConfigName --content-type application/json --key Settings:BlockedUsers --value null
az appconfig kv set -n $appConfigName --content-type application/json --key Settings:ReleaseDate --value \"2020-08-04T12:34:56.789Z\"
az appconfig kv set -n $appConfigName --content-type application/json --key Settings:RolloutPercentage --value [25,50,75,100]
az appconfig kv set -n $appConfigName --content-type application/json --key Settings:Logging --value {\"Test\":{\"Level\":\"Debug\"},\"Prod\":{\"Level\":\"Warning\"}}

重要

Azure CLI または Azure Cloud Shell を使用して JSON キー値を作成する場合、指定する値はエスケープされた JSON 文字列である必要があります。

ファイルから JSON キー値をインポートする

次の内容の Import.json という JSON ファイルを作成し、キー値として App Configuration にインポートします。

{
  "Settings": {
    "BackgroundColor": "Green",
    "BlockedUsers": null,
    "FontSize": 24,
    "Logging": {"Test":{"Level":"Debug"},"Prod":{"Level":"Warning"}},
    "ReleaseDate": "2020-08-04T12:34:56.789Z",
    "RolloutPercentage": [25,50,75,100],
    "UseDefaultRouting": false
  }
}
az appconfig kv import -s file --format json --path "~/Import.json" --content-type "application/json" --separator : --depth 2

Note

--depth 引数は、ファイルの階層データをキーと値にフラット化するために使用されます。 このチュートリアルでは、App Configuration に値として JSON オブジェクトを格納することもできることを示すために、深さが指定されています。 深さが指定されていない場合、JSON オブジェクトは既定で最も深いレベルにフラット化されます。

作成した JSON キー値は、App Configuration では次のようになるはずです。

Screenshot that shows the Config store containing JSON key-values.

これをチェックするには、Azure portal で App Configuration リソースを開き、構成エクスプローラーに移動します

JSON キー値をファイルにエクスポートする

JSON キー値を使用する主な利点の 1 つは、エクスポート中に値の元のデータ型を保持できることです。 App Configuration のキー値に JSON コンテンツ タイプがない場合、その値は文字列として扱われます。

JSON コンテンツ タイプのないこれらのキー値があるとします。

Key コンテンツの種類
Settings:FontSize 24
Settings:UseDefaultRouting false

これらのキー値を JSON ファイルにエクスポートすると、値は文字列としてエクスポートされます。

{
  "Settings": {
    "FontSize": "24",
    "UseDefaultRouting": "false"
  }
}

しかし、JSON キー値をファイルにエクスポートすると、すべての値の元のデータ型が保持されます。 このプロセスを確認するには、キー値を App Configuration から JSON ファイルにエクスポートします。 エクスポートされたファイルの内容が、先ほどインポートした Import.json ファイルと同じであることがわかります。

az appconfig kv export -d file --format json --path "~/Export.json" --separator :

Note

App Configuration ストアに JSON コンテンツ タイプのないキー値がいくつかある場合、文字列形式の同じファイルにもエクスポートされます。

アプリケーションでの JSON キー値の使用

アプリケーションで JSON キー値を使用する最も簡単な方法は、App Configuration プロバイダー ライブラリを使用することです。 プロバイダー ライブラリを使用する場合、アプリケーションで JSON キー値の特別な処理を実装する必要はありません。 これらは解析され、アプリケーションのネイティブ構成に一致するように変換されます。

たとえば、アプリ構成に次のキー値がある場合:

Key コンテンツの種類
設定 {"FontSize":24,"UseDefaultRouting":false} application/json

.NET アプリケーション構成では、キー値が次のようになります。

Key
Settings:FontSize 24
Settings:UseDefaultRouting false

新しいキーに直接アクセスするか、構成値を .NET オブジェクトのインスタンスにバインドすることを選択できます。

重要

JSON キー値のネイティブ サポートは、.NET 構成プロバイダー バージョン 4.0.0 (またはそれ以降) で利用できます。 詳細については、「次のステップ」セクションに進んでください。

SDK または REST API を使用して、コンテンツ タイプに基づいて App Configuration からキー値を読み取る場合、アプリケーションで JSON キー値の値を解析する必要があります。

リソースをクリーンアップする

この記事で作成したリソースを継続して使用しない場合は、ここで作成したリソース グループを削除して課金されないようにしてください。

重要

リソース グループを削除すると、元に戻すことができません。 リソース グループとそのすべてのリソースは完全に削除されます。 間違ったリソース グループやリソースをうっかり削除しないようにしてください。 この記事のリソースを、保持したい他のリソースを含むリソース グループ内に作成した場合は、リソース グループを削除する代わりに、各リソースをそれぞれのペインから個別に削除します。

  1. Azure portal にサインインし、 [リソース グループ] を選択します。
  2. [名前でフィルター] ボックスにリソース グループの名前を入力します。
  3. 結果一覧でリソース グループ名を選択し、概要を表示します。
  4. [リソース グループの削除] を選択します。
  5. リソース グループの削除の確認を求めるメッセージが表示されます。 確認のためにリソース グループの名前を入力し、 [削除] を選択します。

しばらくすると、リソース グループとそのすべてのリソースが削除されます。

次のステップ

これで、App Configuration ストアでの JSON キー値の操作方法がわかったので、これらのキー値を使用するためのアプリケーションを作成します。