Share via


Yapılandırma dosyaları için Azure Uygulama Yapılandırması desteği

Dosyalar, yapılandırma verilerini depolamanın en yaygın yollarından biridir. Uygulama Yapılandırması, hızlı bir şekilde başlamanıza yardımcı olmak için yapılandırma dosyalarınızı içeri aktarmanıza yardımcı olacak araçlar içerir, böylece verilerinizi el ile yazmanız gerekmez. Verilerinizi içeri aktardıktan sonra Uygulama Yapılandırması'da yönetmeyi planlıyorsanız, bu işlem tek seferlik bir veri geçişidir. Kod olarak yapılandırmayı benimsediğiniz diğer bazı durumlarda, yapılandırma verilerinizi dosyalarda yönetmeye ve CI/CD işleminizin bir parçası olarak içeri aktarmaya tekrar tekrar devam edebilirsiniz. Bu iki senaryodan birinin sizin için geçerli olduğunu fark edebilirsiniz:

  • Yapılandırma dosyasını daha önce kullandığınız biçimde tutarsınız. Bu biçim, dosyayı uygulamanızın geri dönüş yapılandırması veya geliştirme sırasında yerel yapılandırma olarak kullanmak istiyorsanız yararlıdır. Yapılandırma dosyasını içeri aktarırken, verilerin anahtar-değerlere nasıl dönüştürülmesini istediğinizi Uygulama Yapılandırması. Bu seçenek portal, Azure CLI, Azure Pipeline Push görevi, GitHub Actions vb. Uygulama Yapılandırması içeri aktarma araçlarında varsayılan dosya içerik profilidir.
  • Yapılandırma dosyasını tüm Uygulama Yapılandırması anahtar-değer özelliklerini içeren biçimde tutarsınız. Dosyayı içeri aktarırken, anahtar-değerin tüm özellikleri zaten dosyada olduğundan herhangi bir dönüştürme kuralı belirtmeniz gerekmez. Bu seçenek, Uygulama Yapılandırması içeri aktarma araçlarında KVSet dosya içeriği profili olarak adlandırılır. Normal anahtar değerleri, Key Vault başvuruları ve özellik bayrakları dahil olmak üzere tüm Uygulama Yapılandırması verilerinizi tek bir dosyada yönetmek ve bunları tek bir çekimde içeri aktarmak istediğinizde yararlı olur.

Bu belgenin geri kalanında hem dosya içeriği profilleri ayrıntılı olarak ele alınır hem de örnek olarak Azure CLI kullanılır. Aynı kavram diğer Uygulama Yapılandırması içeri aktarma araçları için de geçerlidir.

Dosya içeriği profili: varsayılan

Uygulama Yapılandırması araçlarındaki varsayılan dosya içeriği profili, mevcut programlama çerçeveleri veya sistemleri tarafından yaygın olarak benimsenen geleneksel yapılandırma dosyası şemasını ifade eder. Uygulama Yapılandırması JSON, Yaml veya Özellikler dosya biçimlerini destekler.

Aşağıdaki örnek, bir yapılandırma ayarı ve bir özellik bayrağı içeren adlı appsettings.json bir yapılandırma dosyasıdır.

{
    "Logging": {
        "LogLevel": {
            "Default": "Warning"
        }
    },
    "FeatureManagement": {
        "Beta": false
    }
}

Etiketiyle dev Uygulama Yapılandırması aktarmak için aşağıdaki CLI komutunu çalıştırın ve anahtar adını düzleştirmek için ayırıcı olarak iki nokta üst üste (:) kullanın. İsteğe bağlı olarak "--profile appconfig/default" parametresini ekleyebilirsiniz. Varsayılan değer olduğundan örnekte atlanır.

az appconfig kv import --label dev --separator : --name <your store name> --source file --path appsettings.json --format json

Key Vault başvuruları içeri aktarma sırasında belirli bir içerik türü gerektirir, bu nedenle bunları ayrı bir dosyada saklarsınız. Aşağıdaki örnek adlı keyvault-refs.jsonbir dosyadır.

{
    "Database:ConnectionString": {
        "uri": "https://<your-vault-name>.vault.azure.net/secrets/db-secret"
    }  
}

Etiket ve Key Vault başvuru içerik türüyle içeri test aktarmak için aşağıdaki CLI komutunu çalıştırın.

az appconfig kv import --label test --content-type "application/vnd.microsoft.appconfig.keyvaultref+json;charset=utf-8" --name <your store name> --source file --path keyvault-refs.json --format json

Aşağıdaki tabloda, Uygulama Yapılandırması deponuzdaki tüm içeri aktarılan veriler gösterilmektedir.

Anahtar Değer Etiketle İçerik türü
.appconfig.featureflag/Beta {"id":"Beta","description":"","enabled":false,"conditions":{"client_filters":[]}} geliştirme application/vnd.microsoft.appconfig.ff+json;charset=utf-8
Günlüğe Kaydetme:LogLevel:Varsayılan Uyarı geliştirme
Veritabanı:ConnectionString {"uri":"https://< your-vault-name.vault.azure.net/secrets/db-secret>"} test application/vnd.microsoft.appconfig.keyvaultref+json;charset=utf-8

Dosya içeriği profili: KVSet

Uygulama Yapılandırması araçlarındaki KVSet dosya içeriği profili, anahtar, değer, etiket, içerik türü ve etiketler de dahil olmak üzere Uygulama Yapılandırması anahtar değerinin tüm özelliklerini içeren bir dosya şemasına başvurur. Dosya JSON biçimindedir. Şema belirtimi için bkz. KVSet dosya şeması .

Aşağıdaki örnek, özellik bayrağı, appconfigdata.jsonKey Vault başvurusu ve normal anahtar-değeri içeren adlı KVSet dosya içerik profilini temel alan bir dosyadır.

{
  "items": [
    {
      "key": ".appconfig.featureflag/Beta",
      "value": "{\"id\":\"Beta\",\"description\":\"Beta feature\",\"enabled\":true,\"conditions\":{\"client_filters\":[]}}",
      "label": "dev",
      "content_type": "application/vnd.microsoft.appconfig.ff+json;charset=utf-8",
      "tags": {}
    },
    {
      "key": "Database:ConnectionString",
      "value": "{\"uri\":\"https://<your-vault-name>.vault.azure.net/secrets/db-secret\"}",
      "label": "test",
      "content_type": "application/vnd.microsoft.appconfig.keyvaultref+json;charset=utf-8",
      "tags": {}
    },
    {
      "key": "Logging:LogLevel:Default",
      "value": "Debug",
      "label": "dev",
      "content_type": null,
      "tags": {}
    }
  ]
}

İpucu

Önceki bölümdeki örneği izlediyseniz ve verileri Uygulama Yapılandırması deponuzda varsa CLI komutunu kullanarak bir dosyaya aktarabilirsiniz:

az appconfig kv export --profile appconfig/kvset --label * --name <your store name> --destination file --path appconfigdata.json --format json 

Dosya dışarı aktarıldıktan sonra özellik bayrağı özelliğini olarak güncelleştirin Beta ve olarak değiştirinDebugLogging:LogLevel:Default.trueenabled

Dosyayı Uygulama Yapılandırması deponuza aktarmak için "--profile appconfig/kvset" parametresiyle aşağıdaki CLI komutunu çalıştırın. Tüm bilgiler zaten dosyada olduğundan, varsayılan dosya içerik profili bölümünde yaptığınız gibi ayırıcı, etiket veya içerik türü gibi herhangi bir veri dönüştürme kuralı belirtmeniz gerekmez.

az appconfig kv import --profile appconfig/kvset --name <your store name> --source file --path appconfigdata.json --format json

Not

KVSet dosya içerik profili şu anda

Aşağıdaki tabloda, Uygulama Yapılandırması deponuzdaki tüm içeri aktarılan veriler gösterilmektedir.

Anahtar Değer Etiketle İçerik türü
.appconfig.featureflag/Beta {"id":"Beta","description":"Beta feature","enabled":true,"conditions":{"client_filters":[]}} geliştirme application/vnd.microsoft.appconfig.ff+json;charset=utf-8
Günlüğe Kaydetme:LogLevel:Varsayılan Debug geliştirme
Veritabanı:ConnectionString {"uri":"https://< your-vault-name.vault.azure.net/secrets/db-secret>"} test application/vnd.microsoft.appconfig.keyvaultref+json;charset=utf-8

Sonraki adımlar