索引鍵和值
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 或使用 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 機碼值。