Bagikan melalui


Gunakan label untuk menyediakan nilai konfigurasi per lingkungan.

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

Di Azure App Configuration, Anda dapat menggunakan label untuk menentukan nilai yang berbeda untuk kunci yang sama. Misalnya, Anda dapat menentukan satu kunci dengan 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 Penjelajah Konfigurasi 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 Nilaimerah dan LabelPengembangan. Biarkan Tipe 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 harus 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 menentukan lingkungan mana yang saat ini dijalankan aplikasi. Untuk mempelajari selengkapnya, lihat Menggunakan beberapa lingkungan di ASP.NET Core.

Tambahkan referensi ke namespace 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 Select dalam metode :

var builder = WebApplication.CreateBuilder(args);

builder.Configuration.AddAzureAppConfiguration(options =>
    {
        string endpoint = Environment.GetEnvironmentVariable("Endpoint");
        options.Connect(new Uri(endpoint), new DefaultAzureCredential())
               // Load configuration values with no label
               .Select(KeyFilter.Any, LabelFilter.Null)
               // Override with any configuration values specific to current hosting env
               .Select(KeyFilter.Any, builder.Environment.EnvironmentName);
    });

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

Menguji di lingkungan yang berbeda

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

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

dotnet build
dotnet run

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

Aplikasi web yang berjalan dengan konfigurasi produksi

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

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

Aplikasi web yang berjalan dengan konfigurasi pengembangan

Langkah berikutnya

Konfigurasi pada di ASP.NET Core