共用方式為


使用內容類型將 JSON 索引鍵/值儲存在應用程式組態中

數據會儲存在應用程式組態中做為索引鍵/值,其中值預設會被視為字串類型。 不過,您可以使用與每個索引鍵/值相關聯的內容類型屬性來指定自定義類型。 此程式會保留您數據的原始類型,或讓您的應用程式根據內容類型以不同的方式運作。

概觀

在應用程式組態中,您可以使用 JSON 媒體類型作為索引鍵/值的內容類型,以利用下列優點:

  • 更簡單的數據管理:在 Azure 入口網站中管理索引鍵/值,例如陣列,會變得更容易。
  • 增強型數據匯出:在數據匯出期間,將會保留基本類型、陣列和 JSON 物件。
  • 與應用程式組態提供者搭配運作的原生支援:當應用程式中應用程式組態提供者程式庫取用時,具有 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 值的鍵值,將被稱為JSON 鍵值

在本教學課程中,您將了解如何:

  • 在應用程式組態中建立 JSON 索引鍵/值。
  • 從 JSON 檔案匯入 JSON 索引鍵/值。
  • 將 JSON 索引鍵/值匯出至 JSON 檔案。
  • 在您的應用程式中取用 JSON 鍵值。

如果您沒有 Azure 帳戶,請在開始之前建立 免費帳戶

先決條件

  • 應用程式組態存放區,如 建立存放區的教學課程所示。
  • 本教學課程需要 Azure CLI 2.10.0 版或更新版本。 如果使用 Azure Cloud Shell,則已安裝最新版本。

在應用程式組態中建立 JSON 索引鍵/值

您可以使用 Azure 入口網站、Azure CLI 或從 JSON 檔案匯入來建立 JSON 索引鍵/值。 在本節中,您將找到使用這三種方法建立相同 JSON 索引鍵/值的指示。

使用 Azure 入口網站建立 JSON 索引鍵/值

將下列索引鍵/值新增至應用程式組態存放區。 保留 標籤 的預設值。 若要瞭解如何使用 Azure 入口網站或 CLI 將鍵值新增至儲存區的詳細資訊,請移至建立鍵值

鑰匙 價值觀 內容類型
Settings:BackgroundColor “綠色” application/json
Settings:FontSize 24 application/json
Settings:UseDefaultRouting application/json
Settings:BlockedUsers 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 索引鍵/值

下列命令會在您的應用程式組態存放區中建立 JSON 索引鍵/值。 將 <appconfig_name> 取代為您應用程式組態存放區的名稱。

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 檔案,並將其匯入為應用程式組態中的索引鍵/值:

{
  "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

備註

--depth 參數用於將檔案中的階層式數據扁平化為鍵值對。 在本教學課程中,已指定深度來示範您也可以將 JSON 物件儲存為應用程式組態中的值。 如果未指定深度,JSON 對象預設會扁平化為最深的層級。

您在應用程式設定中建立的 JSON 索引鍵/值看起來應該像這樣:

顯示包含 JSON 索引鍵/值的組態存放區的螢幕快照。

若要檢查此問題,請在 Azure 入口網站中開啟您的應用程式設定資源,然後移至 [ 組態總管]。

將 JSON 索引鍵/值匯出至檔案

使用 JSON 鍵值對的主要優點之一是在匯出時能夠保留資料的原始數據類型。 如果應用程式組態中的索引鍵/值沒有 JSON 內容類型,則會將其值視為字串。

請考慮下列不含 JSON 內容類型的索引鍵值:

鑰匙 價值觀 內容類型
設定:字體大小 24
Settings:UseDefaultRouting 假的

當您將這些機碼值匯出至 JSON 檔案時,這些值會匯出為字串:

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

不過,當您將 JSON 索引鍵/值匯出至檔案時,所有值都會保留其原始數據類型。 若要確認此程式,請將密鑰/值從應用程式組態匯出至 JSON 檔案。 您會看到導出的檔案與您先前匯入的 Import.json 檔案內容相同。

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

備註

如果您的應用程式組態存放區有一些沒有 JSON 內容類型的索引鍵/值,它們也會以字串格式匯出至相同的檔案。

在應用程式中取用 JSON 機碼值

在應用程式中取用 JSON 索引鍵/值最簡單的方式是透過應用程式組態提供者連結庫。 使用提供者連結庫,您不需要在應用程式中實作 JSON 索引鍵/值的特殊處理。 系統會剖析並轉換它們,以符合應用程式的原生組態。

例如,如果您在應用程式組態中有下列機碼值:

鑰匙 價值觀 內容類型
設定 {"FontSize":24,"UseDefaultRouting":false} application/json

您的 .NET 應用程式設定將具有以下鍵值:

鑰匙 價值觀
設定:字體大小 24
Settings:UseDefaultRouting 假的

您可以直接存取新的金鑰,或者您可以選擇將 組態值系結至 .NET 對象的實例

這很重要

.NET 組態提供者 4.0.0 版(或更新版本)提供 JSON 索引鍵/值的原生支援。 如需詳細資訊,請移至 後續步驟 一節。

如果您使用 SDK 或 REST API,根據內容類型從應用程式組態讀取索引鍵/值,您的應用程式會負責剖析 JSON 索引鍵/值的值。

清理資源

如果您不想繼續使用本文中建立的資源,請刪除在此處建立的資源群組,以避免產生費用。

這很重要

刪除資源群組是無法回復的動作。 資源群組和其中的所有資源都將被永久刪除。 請確定您不會誤刪錯誤的資源群組或資源。 如果您是在包含其他您想保留資源的資源群組中建立本文的資源,則應該從各自的面板中逐一刪除每個資源,而不用刪除整個資源群組。

  1. 登入 Azure 入口網站,然後選取 [資源群組]
  2. 在 [依名稱篩選] 方塊中,輸入您資源群組的名稱。
  3. 在結果清單中,選取資源群組名稱以查看概觀。
  4. 選擇 ,刪除資源群組
  5. 系統將會要求您確認是否刪除資源群組。 輸入您資源群組的名稱以進行確認,然後選取 [刪除]

不久後,系統便會刪除該資源群組及其所有的資源。

後續步驟

既然您已瞭解如何在應用程式組態存放區中使用 JSON 索引鍵/值,請建立應用程式來取用這些索引鍵/值: