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.
Data dari App Configuration dapat dimuat sebagai Pengaturan Aplikasi dalam aplikasi .NET. Untuk informasi selengkapnya, lihat Mulai Cepat. Namun, seperti yang dirancang oleh .NET, Pengaturan Aplikasi hanya dapat di-refresh saat aplikasi dimulai ulang. Penyedia Konfigurasi Aplikasi .NET adalah pustaka Standar .NET. Ini mendukung penyimpanan dalam cache dan penyegaran konfigurasi secara dinamis tanpa mengulang aplikasi. Tutorial ini menunjukkan bagaimana Anda dapat menerapkan pembaruan konfigurasi dinamis dalam layanan latar belakang .NET.
Dalam tutorial ini, Anda akan mempelajari cara:
- Siapkan layanan latar belakang .NET Anda untuk memperbarui konfigurasinya sebagai respons terhadap perubahan dalam penyimpanan konfigurasi aplikasi.
- Terapkan konfigurasi terbaru pada layanan latar belakang Anda.
Prasyarat
- Akun Azure dengan langganan aktif. Buat akun gratis.
- Penyimpanan App Configuration, seperti yang ditunjukkan dalam tutorial untuk membuat penyimpanan.
- .NET SDK 6.0 atau yang lebih baru - juga tersedia di Azure Cloud Shell.
Menambahkan nilai kunci
Tambahkan nilai kunci berikut ke penyimpanan App Configuration dan biarkan Label dan Tipe Konten dengan nilai defaultnya. Untuk informasi selengkapnya tentang cara menambahkan nilai kunci ke penyimpanan menggunakan portal Azure atau CLI, buka Membuat nilai kunci.
| Kunci | Nilai |
|---|---|
| TestApp:Settings:Message | Data dari konfigurasi aplikasi Azure |
Membuat layanan latar belakang .NET
Anda menggunakan antarmuka baris perintah .NET (CLI) untuk membuat proyek aplikasi .NET baru. Keuntungan menggunakan .NET CLI melalui Visual Studio adalah tersedia di seluruh platform Windows, macOS, dan Linux. Atau, gunakan alat yang sudah terinstal sebelumnya yang tersedia di Azure Cloud Shell.
Membuat folder baru untuk proyek Anda.
Di folder baru, jalankan perintah berikut untuk membuat proyek layanan latar belakang .NET baru:
dotnet new worker
Memuat ulang data dari Azure App Configuration
Tambahkan referensi ke
Microsoft.Extensions.Configuration.AzureAppConfigurationpaket NuGet dengan menjalankan perintah berikut:dotnet add package Microsoft.Extensions.Configuration.AzureAppConfigurationJalankan perintah berikut untuk memulihkan paket untuk proyek Anda:
dotnet restoreBuka Program.cs dan tambahkan pernyataan berikut:
using Microsoft.Extensions.Configuration; using Microsoft.Extensions.Configuration.AzureAppConfiguration;Sambungkan ke App Configuration menggunakan ID Microsoft Entra (disarankan), atau string koneksi.
Anda menggunakan
DefaultAzureCredentialuntuk mengautentikasi ke penyimpanan App Configuration Anda. Ikuti instruksi untuk menetapkan kredensial Anda ke dalam peran Pembaca Data App Configuration. Pastikan untuk mengizinkan waktu yang memadai agar izin disebarluaskan sebelum menjalankan aplikasi Anda.// Existing code in Program.cs // ... ... var builder = Host.CreateApplicationBuilder(args); builder.Configuration.AddAzureAppConfiguration(options => { string endpoint = Environment.GetEnvironmentVariable("Endpoint"); options.Connect(new Uri(endpoint), new DefaultAzureCredential()); // Load all keys that start with `TestApp:` and have no label. .Select("TestApp:*") // Reload configuration if any selected key-values have changed. .ConfigureRefresh(refreshOptions => { refreshOptions.RegisterAll(); }); // Register the refresher so that the Worker service can consume it through DI builder.Services.AddSingleton(options.GetRefresher()); }); // The rest of existing code in Program.cs // ... ...Di dalam metode
ConfigureRefresh, Anda memanggil metodeRegisterAlluntuk menginstruksikan penyedia App Configuration agar memuat ulang seluruh konfigurasi setiap kali mendeteksi perubahan pada salah satu nilai kunci yang dipilih (yang dimulai dengan TestApp: dan tidak memiliki label). Untuk informasi selengkapnya tentang memantau perubahan konfigurasi, lihat Praktik terbaik untuk refresh konfigurasi.Petunjuk / Saran
Anda dapat menambahkan panggilan ke metode
refreshOptions.SetRefreshIntervaluntuk menentukan waktu minimum antara pembaruan konfigurasi. Dalam contoh ini, Anda menggunakan nilai default 30 detik. Sesuaikan ke nilai yang lebih tinggi jika Anda perlu mengurangi jumlah permintaan yang dibuat ke toko Konfigurasi Aplikasi Anda.Buka Worker.cs.
IConfigurationMasukkan danIConfigurationRefresherkeWorkerlayanan dan catat data konfigurasi dari App Configuration.public class Worker : BackgroundService { private readonly ILogger<Worker> _logger; private readonly IConfiguration _configuration; private readonly IConfigurationRefresher _refresher; public Worker(ILogger<Worker> logger, IConfiguration configuration, IConfigurationRefresher refresher) { _logger = logger ?? throw new ArgumentNullException(nameof(logger)); _configuration = configuration ?? throw new ArgumentNullException(nameof(configuration)); _refresher = refresher ?? throw new ArgumentNullException(nameof(refresher)); } protected override async Task ExecuteAsync(CancellationToken stoppingToken) { while (!stoppingToken.IsCancellationRequested) { // Intentionally not await TryRefreshAsync to avoid blocking the execution. _refresher.TryRefreshAsync(stoppingToken); if (_logger.IsEnabled(LogLevel.Information)) { _logger.LogInformation(_configuration["TestApp:Settings:Message"] ?? "No data."); } await Task.Delay(TimeSpan.FromSeconds(30), stoppingToken); } } }Memanggil metode
ConfigureRefreshsaja tidak akan menyebabkan konfigurasi di-refresh secara otomatis. Anda memanggil metodeTryRefreshAsyncdari antarmukaIConfigurationRefresheruntuk memicu refresh. Desain ini untuk menghindari permintaan yang dikirim ke App Configuration bahkan ketika aplikasi Anda menganggur. Anda dapat menyertakan panggilanTryRefreshAsyncdi mana Anda menganggap aplikasi Anda aktif. Misalnya, saat Anda memproses pesan masuk, pesanan, atau pengulangan tugas yang kompleks. Panggilan juga dapat berada dalam timer jika aplikasi Anda aktif sepanjang waktu. Dalam contoh ini, Anda memanggilTryRefreshAsyncsetiap kali layanan latar belakang dijalankan. Perhatikan bahwa, meskipun panggilanTryRefreshAsyncgagal karena alasan apa pun, aplikasi Anda akan terus menggunakan konfigurasi yang di-cache. Upaya lain akan dilakukan ketika interval refresh yang dikonfigurasi telah berlalu danTryRefreshAsyncpanggilan dipicu oleh aktivitas aplikasi Anda lagi.TryRefreshAsyncPanggilan adalah no-op sebelum interval refresh yang dikonfigurasi berlalu, sehingga dampak performanya minimal, bahkan jika sering dipanggil.
Membangun dan menjalankan aplikasi secara lokal
Atur variabel lingkungan.
Atur variabel lingkungan bernama Titik Akhir ke titik akhir penyimpanan App Configuration Anda yang ditemukan di bawah Gambaran Umum penyimpanan Anda di portal Azure.
Jika Anda menggunakan perintah Windows, jalankan perintah berikut dan hidupkan ulang perintah untuk memungkinkan perubahan berlaku:
setx Endpoint "<endpoint-of-your-app-configuration-store>"Jika Anda menggunakan PowerShell, jalankan perintah berikut:
$Env:Endpoint = "<endpoint-of-your-app-configuration-store>"Jika Anda menggunakan macOS atau Linux, jalankan perintah berikut:
export Endpoint='<endpoint-of-your-app-configuration-store>'Jalankan perintah berikut untuk membangun aplikasi.
dotnet buildSetelah build berhasil diselesaikan, jalankan perintah berikut untuk menjalankan aplikasi secara lokal.
dotnet runAnda akan melihat output berikut di konsol.
Di portal Microsoft Azure, navigasikan ke Penjelajah konfigurasi penyimpanan App Configuration, dan perbarui nilai kunci berikut.
Kunci Nilai TestApp:Settings:Message Data dari Azure App Configuration - Diperbarui Tunggu beberapa saat agar jangka waktu penyegaran berakhir. Anda akan melihat output konsol berubah.
Membersihkan sumber daya
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 yang ada di dalamnya akan dihapus secara permanen. Pastikan Anda tidak menghapus grup atau sumber daya yang salah secara tidak sengaja. Jika Anda membuat sumber daya untuk artikel ini dalam grup sumber daya yang ada yang berisi sumber daya lain yang ingin disimpan, hapus setiap sumber daya satu per satu dari panelnya masing-masing, bukan menghapus grup sumber daya.
- 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 akan 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 akan dihapus.
Langkah berikutnya
Dalam tutorial ini, Anda mengaktifkan layanan latar belakang .NET untuk menyegarkan pengaturan konfigurasi secara dinamis dari App Configuration. Untuk mempelajari cara mengaktifkan konfigurasi dinamis dalam Aplikasi Web ASP.NET, lanjutkan ke tutorial berikutnya:
Untuk mempelajari cara menggunakan identitas terkelola Azure guna mempermudah akses ke App Configuration, lanjutkan ke tutorial berikutnya: