數據會儲存在應用程式組態中做為索引鍵/值,其中值預設會被視為字串類型。 不過,您可以使用與每個索引鍵/值相關聯的內容類型屬性來指定自定義類型。 此程式會保留您數據的原始類型,或讓您的應用程式根據內容類型以不同的方式運作。
概觀
在應用程式組態中,您可以使用 JSON 媒體類型作為索引鍵/值的內容類型,以利用下列優點:
- 更簡單的數據管理:在 Azure 入口網站中管理索引鍵/值,例如陣列,會變得更容易。
- 增強型數據匯出:在數據匯出期間,將會保留基本類型、陣列和 JSON 物件。
- 與應用程式組態提供者搭配運作的原生支援:當應用程式中應用程式組態提供者程式庫取用時,具有 JSON 內容類型的索引鍵值將會正常運作。
有效的 JSON 內容類型
此處定義的媒體類型可以指派給與每個索引鍵值相關的內容類型。
媒體類型是由型別和子類型所組成。 如果類型為 application ,且子類型 (或後綴) 為 json,媒體類型會被視為有效的 JSON 內容類型。
有效 JSON 內容類型的一些範例如下:
application/jsonapplication/activity+jsonapplication/vnd.foobar+json;charset=utf-8
有效的 JSON 值
當機碼值具有 JSON 內容類型時,其值必須是有效的 JSON 格式,用戶端才能正確處理。 否則,客戶端可能會失敗或退回,並將其視為字串格式。 有效 JSON 值的一些範例包括:
"John Doe"723falsenull"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 Cloud Shell 中使用 Bash 環境。 如需詳細資訊,請參閱開始使用 Azure Cloud Shell。
若要在本地執行 CLI 參考命令,請安裝 Azure CLI。 如果您正在 Windows 或 macOS 上執行,請考慮在 Docker 容器中執行 Azure CLI。 如需詳細資訊,請參閱〈如何在 Docker 容器中執行 Azure CLI〉。
如果您使用的是本機安裝,請使用 az login 命令,透過 Azure CLI 來登入。 若要完成驗證程式,請遵循終端機中顯示的步驟。 如需其他登入選項,請參閱 使用 Azure CLI 向 Azure 進行驗證。
出現提示時,請在第一次使用時安裝 Azure CLI 延伸模組。 如需擴充功能的詳細資訊,請參閱 使用和管理 Azure CLI 的擴充功能。
執行 az version 以尋找已安裝的版本和相依程式庫。 若要升級至最新版本,請執行 az upgrade。
- 應用程式組態存放區,如 建立存放區的教學課程所示。
- 本教學課程需要 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 |
- 選取 ,然後套用。
使用 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 索引鍵/值看起來應該像這樣:
若要檢查此問題,請在 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 索引鍵/值的值。
清理資源
如果您不想繼續使用本文中建立的資源,請刪除在此處建立的資源群組,以避免產生費用。
這很重要
刪除資源群組是無法回復的動作。 資源群組和其中的所有資源都將被永久刪除。 請確定您不會誤刪錯誤的資源群組或資源。 如果您是在包含其他您想保留資源的資源群組中建立本文的資源,則應該從各自的面板中逐一刪除每個資源,而不用刪除整個資源群組。
- 登入 Azure 入口網站,然後選取 [資源群組]。
- 在 [依名稱篩選] 方塊中,輸入您資源群組的名稱。
- 在結果清單中,選取資源群組名稱以查看概觀。
- 選擇 ,刪除資源群組。
- 系統將會要求您確認是否刪除資源群組。 輸入您資源群組的名稱以進行確認,然後選取 [刪除]。
不久後,系統便會刪除該資源群組及其所有的資源。
後續步驟
既然您已瞭解如何在應用程式組態存放區中使用 JSON 索引鍵/值,請建立應用程式來取用這些索引鍵/值: