Azure 應用程式組態會將組態資料儲存為索引鍵/值。 鍵值是由開發人員使用的應用程式設定的容易且具彈性的表達方式。
鑰匙
鍵作為鍵值對的識別符,並用來儲存和擷取相應的值。 常見的方法是使用字元分隔符號 (例如 / 或 :),來將索引鍵組織到階層命名空間。 使用最適合您應用程式的慣例。 應用程式組態會將索引鍵視為一個整體。 既不會剖析索引鍵來找出索引鍵名稱的結構,也不會對索引鍵強制執行任何規則。
以下是基於元件服務的階層結構的鍵名範例:
AppName:Service1:ApiEndpoint
AppName:Service2:ApiEndpoint
在應用程式框架之中使用組態資料可能會規定鍵值的特定命名方案。 例如,Java 的 Spring Cloud 架構定義供應 Spring 應用程式設定的 Environment 資源。 這些資源是由包含「應用程式名稱」和「設定檔」的變數參數化。 Spring Cloud 相關設定資料的索引鍵通常會以這兩個元素開頭,並以分隔符號隔開。
儲存在應用程式組態中的索引鍵是以 Unicode 為基礎的字串 (需區分大小寫)。 在應用程式組態存放區中,索引鍵 app1 和 App1 是不同的。 因為部分架構會以不區分大小寫的方式處理組態索引鍵,所以當您在應用程式內使用組態設定時,務必記得這一點。 我們不建議使用大小寫區分索引鍵。
除了 % 之外,您可以在鍵名稱中使用任何 Unicode 字元。 鍵名不能是 . 或 .. 。 索引鍵/值的合併大小限制為 10 KB。 此限制包括索引鍵中的所有字元、索引鍵的值及所有相關聯的選擇性屬性。 在此限制中,您可以有許多索引鍵階層層級。
設計主要命名空間
命名金鑰的兩種一般方法用於設定數據:一般或階層式。 從應用程式使用情況的角度來看,這些方法會很類似,但階層式命名可提供許多優點:
- 易於閱讀。 階層式索引鍵名稱中的分隔符在句子中做為空格。 還會在文字之間提供自然的中斷點。
- 易於管理。 索引鍵名稱的階層表示設定資料的邏輯群組。
- 易於使用。 您可以更輕鬆地撰寫查詢,以透過模式來比對階層式結構中的索引鍵,並只擷取一部分的組態資料。 此外,許多較新的程式設計架構都有階層式組態數據的原生支援,因此您的應用程式可以使用特定組態。
您可以在應用程式組態中以階層方式以多種方式組織金鑰。 請將這類金鑰想像成 URI。 每個階層式索引鍵都是由一或多個元件組成的資源 路徑 ,由分隔符聯結在一起。 根據您的應用程式、程式設計語言或架構需求,選擇要使用哪個字元做為分隔符。 針對應用程式組態中的不同索引鍵使用多個分隔符。
標籤索引鍵
應用程式組態中的索引鍵/值可選擇性地使用標籤屬性。 標籤會用來區分具有相同索引鍵的索引鍵值。 具有標籤 A 和 B 的索引鍵 app1,會在應用程式組態存放區中形成兩個個別的索引鍵。 根據預設,鍵值沒有標籤。 若要明確參考沒有標籤的機碼值,請使用 \0 (編碼為 %00 的 URL)。
標籤可提供便利的方式來生成鍵的變體。 標籤的常見用法是為相同索引鍵指定多個環境:
Key = AppName:DbEndpoint & Label = Test
Key = AppName:DbEndpoint & Label = Staging
Key = AppName:DbEndpoint & Label = Production
版本索引鍵/值
使用標籤作為建立索引鍵/值多個版本的方法。 例如,您可以在標籤中輸入應用程式版本號碼或 Git 認可識別碼,以識別與特定軟體組建相關聯的索引鍵值。
備註
如果您正在尋找變更版本,應用程式組態會自動保留過去特定一段時間內發生的索引鍵/值所有變更。 如需詳細資訊,請參閱 時間點快照。
查詢索引鍵/值
透過索引鍵和標籤 (可以是 \0),即可識別每個唯一的索引鍵/值。 您可以透過指定模式查詢應用程式組態存放區的索引鍵/值。 應用程式組態存放區會返回所有符合模式的鍵值,包含其對應的值和屬性。 在應用程式群組態的 REST API 呼叫中使用下列主要模式:
| 鑰匙 | 說明 |
|---|---|
key 省略 或 key=* |
符合所有索引鍵。 |
key=abc |
完全符合索引鍵名稱 abc 。 |
key=abc* |
符合以 abc 開頭的索引鍵名稱。 |
key=abc,xyz |
比對索引鍵名稱 abc 或 xyz。 限制為五個 CSV。 |
您也可以包含下列標籤模式:
| 標籤 | 說明 |
|---|---|
label 省略 或 label=* |
符合任何標籤,包括 \0 在內。 |
label=%00 |
符合標籤 \0 。 |
label=1.0.0 |
完全符合標籤 1.0.0。 |
label=1.0.* |
符合以 1.0. 開頭的標籤。 |
label=%00,1.0.0 |
匹配標籤 \0 或 1.0.0,最多限制為五個 CSV 文件。 |
備註
*、 ,和 \ 是查詢中的保留字元。 如果在您的索引鍵名稱或標籤中使用保留字元,您必須在查詢中使用 \{Reserved Character} 來逸出保留字元。
價值觀
指派給索引鍵的值也是 Unicode 字串。 您可以使用所有 Unicode 字元來作為值。
使用內容類型
應用程式組態中的每個索引鍵/值都有內容類型屬性。 您可以選擇性地使用此屬性,將值類型的相關信息儲存在索引鍵/值中,以協助您的應用程式正確處理。 您可以使用內容類型的任何格式。 應用程式組態會針對內建數據類型使用 媒體類型 (也稱為MIME類型),例如功能旗標、Key Vault 參考和 JSON 索引鍵/值。