Gunakan label untuk menyediakan nilai konfigurasi per lingkungan.

Banyak aplikasi perlu menggunakan konfigurasi yang berbeda untuk lingkungan yang berbeda. Misalkan suatu aplikasi memiliki nilai konfigurasi yang menentukan string koneksi yang akan digunakan untuk database back-end-nya. Pengembang aplikasi menggunakan database yang berbeda dari yang digunakan dalam produksi. String koneksi database yang digunakan aplikasi harus berubah saat aplikasi berpindah dari pengembangan ke produksi.

Di Azure App Configuration, Anda bisa menggunakan label untuk menentukan nilai yang berbeda untuk kunci yang sama. Misalnya, Anda dapat menentukan satu kunci dengan nilai-nilai yang berbeda untuk pengembangan dan produksi. Anda dapat menentukan label mana yang akan dimuat saat menyambungkan ke App Configuration.

Untuk menunjukkan fungsionalitas ini, Anda akan memodifikasi aplikasi web yang dibuat di Mulai cepat: Membuat aplikasi ASP.NET Core dengan Azure App Configuration untuk menggunakan pengaturan konfigurasi yang berbeda untuk pengembangan versus produksi. Selesaikan mulai cepat sebelum melanjutkan.

Tentukan label saat menambahkan nilai konfigurasi

Di portal Microsoft Azure, buka Configuration Explorer dan temukan kunci TestApp:Settings:FontColor yang Anda buat di mulai cepat. Pilih menu konteksnya lalu pilih Tambahkan Nilai.

Item menu Tambahkan Nilai

Pada layar Tambahkan Nilai, masukkan Nilai merah dan Label Pengembangan. Biarkan Jenis konten kosong. Pilih Terapkan.

Memuat nilai konfigurasi dengan label tertentu

Secara default, Azure App Configuration hanya memuat nilai konfigurasi tanpa label. Jika Anda telah menentukan label untuk nilai konfigurasi, Anda dapat menentukan label yang akan digunakan saat menyambungkan ke App Configuration.

Di bagian sebelumnya, Anda membuat nilai konfigurasi yang berbeda untuk lingkungan pengembangan. Anda menggunakan HostingEnvironment.EnvironmentName variabel untuk secara dinamik menentukan di lingkungan mana saat ini aplikasi berjalan. Untuk mempelajari lebih lanjut, lihat Menggunakan beberapa lingkungan di ASP.NET Core.

Tambahkan referensi ke namespace layanan Microsoft.Extensions.Configuration.AzureAppConfiguration untuk mengakses kelas KeyFilter dan LabelFilter.

using Microsoft.Extensions.Configuration.AzureAppConfiguration;

Muat nilai konfigurasi dengan label yang sesuai dengan lingkungan saat ini dengan meneruskan nama lingkungan ke dalam Select metode:

    public static IHostBuilder CreateHostBuilder(string[] args) =>
        Host.CreateDefaultBuilder(args)
        .ConfigureWebHostDefaults(webBuilder =>
        webBuilder.ConfigureAppConfiguration((hostingContext, config) =>
        {
            var settings = config.Build();
            config.AddAzureAppConfiguration(options =>
                options
                    .Connect(settings.GetConnectionString("AppConfig"))
                    // Load configuration values with no label
                    .Select(KeyFilter.Any, LabelFilter.Null)
                    // Override with any configuration values specific to current hosting env
                    .Select(KeyFilter.Any, hostingContext.HostingEnvironment.EnvironmentName)
            );
        })
        .UseStartup<Startup>());

Penting

Cuplikan kode sebelumnya menggunakan alat Secret Manager untuk memuat string koneksi App Configuration. Untuk informasi menyimpan string koneksi menggunakan Secret Manager, lihat Mulai Cepat untuk Azure App Configuration dengan ASP.NET Core.

Select Metode ini disebutkan dua kali. Pertama kali, ia memuat nilai konfigurasi tanpa label. Kemudian, memuat nilai konfigurasi dengan label yang sesuai dengan lingkungan saat ini. Nilai spesifik-lingkungan ini mengambil alih nilai terkait yang tanpa label. Anda tidak perlu menentukan nilai spesifik-lingkungan untuk setiap kunci. Jika kunci tidak memiliki nilai dengan label yang sesuai dengan lingkungan saat ini, kunci tersebut akan menggunakan nilai tanpa label.

Uji di lingkungan yang berbeda

Buka file launchSettings.json di bawah direktori Properties. Temukan entri config di bawah profiles. Di bagian environmentVariables, atur variabel ASPNETCORE_ENVIRONMENT ke Production.

Dengan nilai baru yang ditetapkan, buat dan jalankan aplikasi Anda.

dotnet build
dotnet run

Gunakan browser web untuk masuk ke http://localhost:5000. Anda akan melihat bahwa font berwarna hitam.

Aplikasi web yang berjalan dengan konfigurasi produksi

Perbarui launchSettings.json untuk mengatur variabel ASPNETCORE_ENVIRONMENT ke Development. Jalankan dotnet run lagi.

Anda akan melihat bahwa warna font sekarang merah. Ini karena aplikasi sekarang menggunakan nilai TestApp:Settings:FontColor yang memiliki label Development. Semua nilai konfigurasi lain tetap sama dengan nilai produksinya.

Aplikasi web yang berjalan dengan konfigurasi pengembangan

Langkah berikutnya