Bagikan melalui


Tutorial: Menggunakan konfigurasi dinamis di aplikasi .NET Framework

Data dari App Configuration dapat dimuat sebagai Pengaturan Aplikasi di aplikasi .NET Framework. Untuk informasi selengkapnya, lihat Mulai Cepat. Namun, seperti yang dirancang oleh .NET Framework, Pengaturan App hanya dapat disegarkan saat memulai ulang aplikasi. Penyedia .NET App Configuration adalah pustaka Standar .NET. Ini mendukung cache dan pembaruan konfigurasi secara dinamis tanpa memulai ulang aplikasi. Tutorial ini menunjukkan cara menerapkan pembaruan konfigurasi dinamis dalam aplikasi konsol .NET Framework.

Dalam tutorial ini, Anda akan mempelajari cara:

  • Atur aplikasi .NET Framework Anda untuk memperbarui konfigurasinya sebagai tanggapan terhadap perubahan di dalam penyimpanan konfigurasi aplikasi.
  • Suntikkan konfigurasi terbaru dalam aplikasi Anda.

Prasyarat

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 Azure App Configuration

Membuat aplikasi konsol .NET Framework

  1. Mulai Visual Studio dan pilih Buat proyek baru.

  2. Di Buat proyek baru, filter pada jenis proyek Konsol dan klik Aplikasi Konsol (.NET Framework) dengan C# dari daftar templae proyek. Tekan Berikutnya.

  3. Di Konfigurasikan proyek baru Anda, masukkan nama proyek. Dalam Kerangka Kerja, pilih .NET Framework 4.7.2 atau yang lebih baru. Tekan Buat.

Memuat ulang data dari Azure App Configuration

  1. Klik kanan proyek Anda dan pilih Kelola Paket NuGet. Pada tab Telusuri, cari dan tambahkan paket NuGet versi terbaru berikut ke proyek Anda.

    • Microsoft.Extensions.Configuration.AzureAppConfiguration
    • Azure.Identity
  2. Buka Program.cs dan tambahkan namespace layanan berikut.

    using Microsoft.Extensions.Configuration;
    using Microsoft.Extensions.Configuration.AzureAppConfiguration;
    using Azure.Identity;
    
  3. Tambahkan dua variabel untuk menyimpan objek terkait konfigurasi.

    private static IConfiguration _configuration;
    private static IConfigurationRefresher _refresher;
    
  4. Perbarui metode Main untuk menyambungkan ke App Configuration dengan opsi penyegaran yang ditentukan. Sambungkan ke App Configuration menggunakan ID Microsoft Entra (disarankan), atau string koneksi.

    Anda menggunakan DefaultAzureCredential untuk mengautentikasi ke toko Konfigurasi Aplikasi 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
    // ... ...
    
    static void Main(string[] args)
    {
        var builder = new ConfigurationBuilder();
        builder.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(refresh =>
                   {
                       refresh.RegisterAll()
                              .SetRefreshInterval(TimeSpan.FromSeconds(10));
                   });
    
            _refresher = options.GetRefresher();
        });
    
        _configuration = builder.Build();
        PrintMessage().Wait();
    }
    
    // The rest of existing code in Program.cs
    // ... ...
    

    Di dalam metode ConfigureRefresh, Anda memanggil metode RegisterAll untuk 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.

    Metode SetRefreshInterval ini menentukan waktu minimum yang harus berlalu sebelum permintaan baru dibuat ke App Configuration untuk memeriksa perubahan konfigurasi apa pun. Dalam contoh ini, Anda mengganti waktu kedaluwarsa default 30 detik, dengan menetapkan waktu 10 detik sebagai gantinya untuk tujuan demonstrasi.

  5. Tambahkan metode yang disebut PrintMessage() yang memicu penyegaran data konfigurasi dari App Configuration.

    private static async Task PrintMessage()
    {
        Console.WriteLine(_configuration["TestApp:Settings:Message"] ?? "Hello world!");
    
        // Wait for the user to press Enter
        Console.ReadLine();
    
        await _refresher.TryRefreshAsync();
        Console.WriteLine(_configuration["TestApp:Settings:Message"] ?? "Hello world!");
    }
    

    Memanggil metode ConfigureRefresh saja tidak akan menyebabkan konfigurasi di-refresh secara otomatis. Anda memanggil metode TryRefreshAsync dari antarmuka IConfigurationRefresher untuk memicu refresh. Desain ini untuk menghindari permintaan yang dikirim ke App Configuration bahkan ketika aplikasi Anda menganggur. Anda dapat menyertakan panggilan TryRefreshAsync di mana Anda menganggap aplikasi Anda aktif. Misalnya, saat Anda memproses pesan masuk, pesanan, atau pengulangan tugas yang kompleks. Ini juga dapat menggunakan pengatur waktu jika aplikasi Anda selalu aktif. Dalam contoh ini, Anda memanggil TryRefreshAsync saat menekan tombol Enter. Perhatikan bahwa, meskipun panggilan TryRefreshAsync gagal karena alasan apa pun, aplikasi Anda akan terus menggunakan konfigurasi yang di-cache. Upaya lain akan dilakukan ketika interval penyegaran yang telah dikonfigurasi telah berlalu dan pemanggilan TryRefreshAsync dipicu oleh aktivitas aplikasi Anda sekali lagi. Memanggil TryRefreshAsync tidak memiliki efek sebelum interval penyegaran yang dikonfigurasi selesai, sehingga dampak terhadap performa minimal, bahkan jika sering dilakukan.

Membangun dan menjalankan aplikasi secara lokal

  1. Atur variabel lingkungan.

    Atur variabel lingkungan bernama Endpoint ke titik akhir penyimpanan App Configuration Anda yang ditemukan di bawah Gambaran Umum penyimpanan Anda di portal Microsoft 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>'
    
  2. Hidupkan ulang Visual Studio untuk mengizinkan perubahan diterapkan.

  3. Tekan Ctrl + F5 untuk membangun dan menjalankan aplikasi konsol.

    Peluncuran aplikasi lokal

  4. Di portal Microsoft Azure, buka Penjelajah Konfigurasi Konfigurasi Aplikasi Anda, dan perbarui nilai kunci berikut.

    Kunci Nilai
    TestApp:Settings:Message Data dari Konfigurasi Aplikasi Azure - Diperbarui
  5. Kembali ke aplikasi yang sedang berjalan, tekan tombol Enter untuk memicu penyegaran dan mencetak nilai yang diperbarui di jendela Perintah atau PowerShell.

    Refresh aplikasi lokal

    Catatan

    Karena interval refresh diatur ke 10 detik menggunakan SetRefreshInterval metode saat menentukan konfigurasi untuk operasi refresh, nilai untuk pengaturan konfigurasi hanya akan diperbarui jika setidaknya 10 detik telah berlalu sejak refresh terakhir untuk pengaturan tersebut.

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.

  1. Masuk ke portal Azure, lalu pilih Grup sumber daya.
  2. Dalam kotak Filter menurut nama, masukkan nama grup sumber daya Anda.
  3. Dalam daftar hasil, pilih nama grup sumber daya untuk melihat gambaran umum.
  4. Pilih Hapus grup sumber daya.
  5. 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 aplikasi .NET Framework Anda untuk secara dinamis memperbarui pengaturan konfigurasi dari App Configuration. Untuk mempelajari cara mengaktifkan konfigurasi dinamis dalam Aplikasi Web ASP.NET (.NET Framework), lanjutkan ke tutorial berikutnya:

Untuk mempelajari cara menggunakan identitas terkelola Azure guna mempermudah akses ke App Configuration, lanjutkan ke tutorial berikutnya: