Dukungan Azure App Configuration untuk file konfigurasi

File adalah salah satu cara paling umum untuk menyimpan data konfigurasi. Untuk membantu Anda memulai dengan cepat, App Configuration memiliki alat untuk membantu Anda mengimpor file konfigurasi, sehingga Anda tidak perlu mengetik data anda secara manual. Operasi ini adalah migrasi data satu kali jika Anda berencana untuk mengelola data Anda di App Configuration setelah mengimpornya. Dalam beberapa kasus lain, misalnya, saat Anda mengadopsi konfigurasi sebagai kode, Anda dapat terus mengelola data konfigurasi dalam file dan mengimpornya sebagai bagian dari proses CI/CD Anda secara berulang. Anda mungkin menemukan salah satu dari dua skenario ini berlaku untuk Anda:

  • Anda menyimpan file konfigurasi dalam format yang Anda miliki sebelumnya. Format ini berguna jika Anda ingin menggunakan file sebagai konfigurasi fallback untuk aplikasi Anda atau konfigurasi lokal selama pengembangan. Saat Anda mengimpor file konfigurasi, tentukan bagaimana Anda ingin data diubah menjadi nilai kunci App Configuration. Opsi ini adalah profil konten file default alat impor di App Configuration seperti portal, Azure CLI, tugas Azure Pipeline Push, GitHub Actions, dll.
  • Anda menyimpan file konfigurasi dalam format yang berisi semua properti nilai kunci App Configuration. Saat mengimpor file, Anda tidak perlu menentukan aturan transformasi apa pun karena semua properti nilai kunci sudah ada dalam file. Opsi ini disebut profil konten file KVSet di alat impor App Configuration. Ini sangat membantu jika Anda ingin mengelola semua data App Configuration, termasuk nilai kunci reguler, referensi Key Vault, dan bendera fitur, dalam satu file dan mengimpornya dalam satu kali proses.

Sisa dokumen ini akan membahas kedua profil konten file secara rinci dan menggunakan Azure CLI sebagai contoh. Konsep yang sama juga berlaku untuk alat impor App Configuration lainnya.

Profil konten file: default

Profil konten file default di alat App Configuration mengacu pada skema file konfigurasi konvensional yang diadopsi secara luas oleh kerangka kerja atau sistem pemrograman yang ada. App Configuration mendukung format file JSON, Yaml, atau Properties.

Contoh berikut adalah file konfigurasi bernama appsettings.json yang berisi satu pengaturan konfigurasi dan satu bendera fitur.

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

Jalankan perintah CLI berikut untuk mengimpornya ke App Configuration dengan dev label dan gunakan titik dua (:) sebagai pemisah untuk meratakan nama kunci. Anda dapat secara opsional menambahkan parameter "--profile appconfig/default". Ini dilewati dalam contoh karena ini adalah nilai default.

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

Referensi Key Vault memerlukan jenis konten tertentu selama mengimpor, sehingga Anda menyimpannya dalam file terpisah. Contoh berikut adalah file bernama keyvault-refs.json.

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

Jalankan perintah CLI berikut untuk mengimpornya dengan test label dan jenis konten referensi Key Vault.

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

Tabel berikut ini menampilkan semua data yang diimpor di penyimpanan App Configuration Anda.

Kunci 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://< your-vault-name.vault.azure.net/secrets/db-secret>"} uji application/vnd.microsoft.appconfig.keyvaultref+json;charset=utf-8

Profil konten file: KVSet

Profil konten file KVSet di alat App Configuration mengacu pada skema file yang berisi semua properti nilai kunci App Configuration, termasuk kunci, nilai, label, jenis konten, dan tag. File ini dalam format JSON. Lihat Skema file KVSet untuk spesifikasi skema.

Contoh berikut adalah file berdasarkan profil konten file KVSet, bernama appconfigdata.json, yang berisi bendera fitur, referensi Key Vault, dan nilai kunci reguler.

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

Tip

Jika Anda mengikuti contoh di bagian sebelumnya dan memiliki data di penyimpanan App Configuration, Anda dapat mengekspornya ke file menggunakan perintah CLI:

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

Setelah file diekspor, perbarui bendera fitur Beta properti enabled ke true dan ubah Logging:LogLevel:Default ke Debug.

Jalankan perintah CLI berikut dengan parameter "--profile appconfig/kvset" untuk mengimpor file ke penyimpanan App Configuration Anda. Anda tidak perlu menentukan aturan transformasi data apa pun seperti pemisah, label, atau jenis konten seperti yang Anda lakukan di bagian profil konten file default karena semua informasi sudah ada dalam file.

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

Catatan

Profil konten file KVSet saat ini didukung di

Tabel berikut ini menampilkan semua data yang diimpor di penyimpanan App Configuration Anda.

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

Langkah berikutnya