Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Dalam mulai cepat ini, Anda akan membuat bendera fitur di Azure App Configuration dan menggunakannya untuk mengontrol visibilitas halaman web baru secara dinamis di aplikasi ASP.NET Core yang berjalan di AKS tanpa memulai ulang atau menyebarkannya kembali.
Prasyarat
Ikuti dokumen untuk menggunakan konfigurasi dinamis di Azure Kubernetes Service.
- Mulai cepat: Menggunakan Azure App Configuration di Azure Kubernetes Service
- Tutorial: Menggunakan konfigurasi dinamis di Azure Kubernetes Service
Membuat bendera fitur
Tambahkan bendera fitur yang disebut Beta ke penyimpanan App Configuration dan biarkan Label dan Deskripsi dengan nilai defaultnya. Untuk informasi selengkapnya tentang cara menambahkan bendera fitur ke penyimpanan menggunakan portal Azure atau CLI, buka Membuat bendera fitur.
Menggunakan bendera fitur
Di bagian ini, Anda akan menggunakan bendera fitur dalam aplikasi web ASP.NET sederhana dan menjalankannya di Azure Kubernetes Service (AKS).
Navigasikan ke direktori proyek yang Anda buat di Mulai Cepat, dan jalankan perintah berikut untuk menambahkan referensi ke paket NuGet Microsoft.FeatureManagement.AspNetCore versi 3.2.0 atau yang lebih baru.
dotnet add package Microsoft.FeatureManagement.AspNetCoreBuka program.cs, dan tambahkan manajemen fitur ke kumpulan layanan aplikasi Anda dengan memanggil
AddFeatureManagement.// Existing code in Program.cs // ... ... // Add a JSON configuration source builder.Configuration.AddJsonFile("config/mysettings.json", reloadOnChange: true, optional: false); // Add feature management to the container of services. builder.Services.AddFeatureManagement(); var app = builder.Build(); // The rest of existing code in program.cs // ... ...Tambahkan
using Microsoft.FeatureManagement;di bagian atas file jika tidak ada.Tambahkan halaman Razor kosong baru bernama Beta di bawah direktori Pages . Ini termasuk dua file Beta.cshtml dan Beta.cshtml.cs.
Buka Beta.cshtml, dan perbarui dengan markup berikut:
@page @model MyWebApp.Pages.BetaModel @{ ViewData["Title"] = "Beta Page"; } <h1>This is the beta website.</h1>Buka Beta.cshtml.cs, dan tambahkan
FeatureGateatribut keBetaModelkelas . AtributFeatureGatememastikan halaman Beta hanya dapat diakses saat bendera fitur Beta diaktifkan. Jika bendera fitur Beta tidak diaktifkan, halaman akan mengembalikan 404 Tidak Ditemukan.using Microsoft.AspNetCore.Mvc.RazorPages; using Microsoft.FeatureManagement.Mvc; namespace MyWebApp.Pages { [FeatureGate("Beta")] public class BetaModel : PageModel { public void OnGet() { } } }Buka Pages/_ViewImports.cshtml, dan daftarkan Pengelola fitur Tag Helper menggunakan
@addTagHelperdirektif:@addTagHelper *, Microsoft.FeatureManagement.AspNetCoreKode sebelumnya memungkinkan Pembantu
<feature>Tag digunakan dalam file .cshtml proyek.Buka _Layout.cshtml di direktoriBersamaHalaman\. Sisipkan tag baru
<feature>di antara item bilah navigasi Beranda dan Privasi , seperti yang ditunjukkan pada baris yang disorot di bawah ini.<div class="navbar-collapse collapse d-sm-inline-flex flex-sm-row-reverse"> <ul class="navbar-nav flex-grow-1"> <li class="nav-item"> <a class="nav-link text-dark" asp-area="" asp-page="/Index">Home</a> </li> <feature name="Beta"> <li class="nav-item"> <a class="nav-link text-dark" asp-area="" asp-page="/Beta">Beta</a> </li> </feature> <li class="nav-item"> <a class="nav-link text-dark" asp-area="" asp-page="/Privacy">Privacy</a> </li> </ul> </div>Tag
<feature>memastikan item menu Beta hanya ditampilkan saat bendera fitur Beta diaktifkan.Kontainerisasi aplikasi dan Dorong gambar ke Azure Container Registry.
Sebarkan aplikasi. Refresh browser dan halaman web akan terlihat seperti ini:
Gunakan Penyedia Kubernetes untuk memuat bendera fitur
Perbarui file appConfigurationProvider.yaml yang terletak di direktori Penyebaran dengan konten berikut.
apiVersion: azconfig.io/v1 kind: AzureAppConfigurationProvider metadata: name: appconfigurationprovider-sample spec: endpoint: <your-app-configuration-store-endpoint> target: configMapName: configmap-created-by-appconfig-provider configMapData: type: json key: mysettings.json auth: workloadIdentity: managedIdentityClientId: <your-managed-identity-client-id> featureFlag: selectors: - keyFilter: 'Beta' refresh: enabled: trueTip
Ketika tidak
selectorsada yang ditentukan difeatureFlagbagian, Penyedia Kubernetes tidak akan memuat bendera fitur dari penyimpanan App Configuration Anda. Interval refresh default bendera fitur adalah 30 detik saatfeatureFlag.refreshdiaktifkan. Anda dapat menyesuaikan perilaku ini melaluifeatureFlag.refresh.intervalparameter .Jalankan perintah berikut untuk menerapkan perubahan.
kubectl apply -f ./Deployment -n appconfig-demoPerbarui bendera fitur Beta di penyimpanan App Configuration Anda. Aktifkan bendera dengan memilih kotak centang di bawah Diaktifkan.
Setelah me-refresh browser beberapa kali, konten yang diperbarui akan terlihat setelah ConfigMap diperbarui dalam waktu 30 detik.
Pilih menu Beta . Ini akan membawa Anda ke situs web beta yang Anda aktifkan secara dinamis.
Membersihkan sumber daya
Hapus instalan Penyedia Kubernetes App Configuration dari kluster AKS jika Anda ingin menyimpan kluster AKS.
helm uninstall azureappconfiguration.kubernetesprovider --namespace azappconfig-system
Jika Anda tidak ingin terus menggunakan sumber daya yang dibuat dalam artikel ini, hapus grup sumber daya yang Anda buat di sini untuk menghindari biaya.
Penting
Penghapusan grup sumber daya tidak bisa dipulihkan. Grup sumber daya dan semua sumber daya di dalamnya dihapus secara permanen. Pastikan Anda tidak menghapus grup atau sumber daya yang salah secara tidak sengaja. Jika Anda membuat sumber daya untuk artikel ini di dalam grup sumber daya yang berisi sumber daya lain yang ingin Anda pertahankan, hapus setiap sumber daya satu per satu dari panel masing-masing, daripada menghapus grup sumber daya tersebut.
- Masuk ke portal Azure, lalu pilih Grup sumber daya.
- Dalam kotak Filter menurut nama, masukkan nama grup sumber daya Anda.
- Dalam daftar hasil, pilih nama grup sumber daya untuk melihat gambaran umum.
- Pilih Hapus grup sumber daya.
- Anda diminta untuk mengonfirmasi penghapusan grup sumber daya. Masukkan nama grup sumber daya Anda untuk mengonfirmasi, dan pilih Hapus.
Setelah beberapa saat, grup sumber daya dan semua sumber dayanya dihapus.
Langkah selanjutnya
Dalam panduan singkat ini, Anda akan:
- Menambahkan kemampuan manajemen fitur ke aplikasi ASP.NET Core yang berjalan di Azure Kubernetes Service (AKS).
- Menghubungkan kluster AKS ke penyimpanan App Configuration menggunakan Penyedia Kubernetes App Configuration.
- Membuat ConfigMap dengan kunci-nilai dan bendera fitur dari penyimpanan App Configuration Anda.
- Jalankan aplikasi dengan konfigurasi dinamis dari penyimpanan App Configuration Anda tanpa mengubah kode aplikasi Anda.
Untuk mempelajari selengkapnya tentang Penyedia Kubernetes Azure App Configuration, lihat Referensi Penyedia Kubernetes Azure App Configuration.
Untuk mempelajari selengkapnya tentang kemampuan manajemen fitur, lanjutkan ke tutorial berikut.