Bagikan melalui


Dukungan Azure App Configuration untuk file konfigurasi

Cara umum untuk menyimpan data konfigurasi adalah dengan menggunakan file. Jika Anda ingin menggunakan Azure App Configuration untuk mengelola data konfigurasi tetapi saat ini Anda menggunakan file, Anda tidak perlu memasukkan data anda secara manual. Anda dapat menggunakan alat untuk mengimpor file konfigurasi Anda.

Jika Anda berencana untuk mengelola data Anda di App Configuration, operasi impor adalah migrasi data satu kali. Opsi lain adalah terus mengelola data konfigurasi Anda dalam file dan mengimpor file secara berulang sebagai bagian dari proses integrasi berkelanjutan dan pengiriman berkelanjutan (CI/CD) Anda. Kasus ini muncul ketika Anda mengadopsi konfigurasi sebagai kode.

Dua profil konten file tersedia saat Anda menggunakan file konfigurasi:

  • Profil konten berkas bawaan: Skema berkas konfigurasi yang konvensional
  • Profil konten file KVSet: Skema yang mencakup seluruh properti kunci-nilai pada Konfigurasi Aplikasi

Artikel ini membahas kedua profil konten file. Ini juga menyediakan contoh mengimpor dan mengekspor file konfigurasi. Contoh menggunakan Azure CLI, tetapi konsep dalam artikel ini juga berlaku untuk metode impor App Configuration lainnya.

Profil konten file: default

Di alat App Configuration, profil konten file default adalah skema file konfigurasi konvensional yang diadopsi secara luas oleh kerangka kerja dan sistem pemrograman yang ada. Profil ini digunakan dalam alat impor App Configuration seperti portal Microsoft Azure, Azure CLI, tugas Impor Azure App Configuration di Azure Pipelines, dan GitHub Actions. App Configuration mendukung format file JSON, YAML, dan Properties.

Profil ini berguna jika Anda ingin menggunakan file sebagai konfigurasi fallback untuk aplikasi Anda atau konfigurasi lokal selama pengembangan. Saat mengimpor file konfigurasi, Anda menentukan bagaimana Anda ingin data diubah menjadi nilai kunci dan bendera fitur App Configuration.

File konfigurasi berikut, appsettings.json, menyediakan contoh profil konten file default. File ini berisi satu pengaturan konfigurasi dan satu bendera fitur.

{
    "Logging": {
        "LogLevel": {
            "Default": "Warning"
        }
    },
    "feature_management": {
        "feature_flags": [
            {
                "id": "Beta",
                "enabled": false
            }
        ]
    }
}

Untuk mengimpor file ini ke App Configuration, jalankan perintah Azure CLI berikut. Ini menerapkan dev label ke pengaturan dan bendera fitur, dan menggunakan titik dua (:) sebagai pemisah untuk meratakan nama kunci.

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

Anda dapat secara opsional menambahkan parameter berikut ke perintah sebelumnya: --profile appconfig/default. Parameter bersifat opsional, karena profil defaultnya adalah appconfig/default.

Referensi Azure Key Vault memerlukan jenis konten tertentu selama mengimpor. Akibatnya, Anda menyimpannya dalam file terpisah, seperti yang ditunjukkan dalam file berikut, keyvault-refs.json:

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

Untuk mengimpor file ini, jalankan perintah Azure CLI berikut. Ini menerapkan test label ke referensi Key Vault, dan menggunakan tipe konten referensi Key Vault.

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

Tabel berikut ini memperlihatkan semua data yang diimpor di penyimpanan App Configuration Anda:

Tombol Nilai Label Jenis konten
.appconfig.featureflag/Beta {"id":"Beta","description":"","enabled": false,"conditions":{"client_filters":[]}} dev application/vnd.microsoft.appconfig.ff+json;charset=utf-8
Logging:LogLevel:Default Peringatan dev
Database:ConnectionString {"uri":"https://<Key-Vault-name.vault.azure.net/secrets/db-secret>"} pengujian application/vnd.microsoft.appconfig.keyvaultref+json;charset=utf-8

Profil konten file: KVSet

Di alat App Configuration, profil konten file KVSet adalah skema file yang berisi semua properti nilai kunci App Configuration. Disertakan adalah nama kunci, nilainya, labelnya, jenis kontennya, dan tag-nya. Karena semua properti nilai kunci ada dalam file, Anda tidak perlu menentukan aturan transformasi saat mengimpor file.

Saat menggunakan profil KVSet, Anda dapat menentukan nilai kunci reguler, referensi Key Vault, dan bendera fitur dalam satu file. Akibatnya, profil ini berguna jika Anda ingin mengelola semua data App Configuration dalam satu file dan mengimpornya dalam satu langkah.

File yang menggunakan profil ini dalam format JSON. Untuk spesifikasi skema, lihat skema file KVSet.

File berikut, appconfigdata.json, didasarkan pada profil konten file KVSet. File ini berisi bendera fitur, referensi Key Vault, dan nilai kunci standar.

{
  "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://<Key-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": {}
    }
  ]
}

Di bagian sebelumnya, contoh menunjukkan cara mengimpor data ke penyimpanan App Configuration Anda. Anda dapat mengekspor data tersebut ke file dengan menggunakan perintah Azure CLI berikut:

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

Setelah Anda mengekspor file, buka di editor teks dan buat perubahan berikut:

  • Atur bendera fitur Beta sebagai properti enabled ke true.
  • Atur properti Logging:LogLevel:Default ke Debug.

Untuk mengimpor file yang diperbarui ke penyimpanan App Configuration Anda, jalankan perintah CLI berikut, yang menyertakan --profile appconfig/kvset parameter . Anda tidak perlu menentukan aturan transformasi data seperti pemisah, label, atau tipe konten seperti yang Anda lakukan untuk profil konten file default. Semua informasi yang diperlukan sudah ada dalam file.

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

Catatan

Profil konten file KVSet saat ini didukung di:

Tabel berikut ini memperlihatkan semua data yang diimpor di penyimpanan App Configuration Anda:

Tombol Nilai Label Jenis konten
.appconfig.featureflag/Beta {"id":"Beta","description":"Fitur beta","enabled":true,"conditions":{"client_filters":[]}} dev application/vnd.microsoft.appconfig.ff+json;charset=utf-8
Logging:LogLevel:Default Debug dev
Database:ConnectionString {"uri":"https://<Key-Vault-name.vault.azure.net/secrets/db-secret>"} pengujian application/vnd.microsoft.appconfig.keyvaultref+json;charset=utf-8

Langkah berikutnya