Bagikan melalui


Mulai cepat: Menambahkan bendera fitur ke aplikasi Azure Functions

Dalam panduan memulai dengan cepat ini, Anda membuat aplikasi Azure Functions dan menggunakan pengaturan fitur di dalamnya. Anda menggunakan manajemen fitur dari Azure App Configuration untuk menyimpan semua bendera fitur Anda secara terpusat dan mengontrol statusnya.

Prasyarat

Menambahkan 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.

Aktifkan bendera fitur bernama Beta

Membuat Aplikasi Fungsi

Buat aplikasi Azure Functions menggunakan Visual Studio dengan memilih templat Azure Functions (C#). Templat ini memandu Anda mengonfigurasi pengaturan penting untuk proyek Anda. Untuk instruksi mendetail, lihat Mengembangkan Azure Functions menggunakan Visual Studio.

Gunakan tabel berikut sebagai referensi untuk parameter kunci saat membuat Aplikasi Fungsi Anda.

Pengaturan Nilai
Pekerja fungsi .NET 8.0 Terisolasi
Fungsi Pemicu HTTP
Tingkat otorisasi Anonim

Catatan

Azure App Configuration dapat digunakan dengan Azure Functions baik dalam model pekerja yang terisolasi atau model dalam proses. Panduan cepat ini menggunakan model pekerja terisolasi sebagai contoh. Anda dapat menemukan contoh kode lengkap untuk kedua model di repositori GitHub Azure App Configuration.

Hubungkan ke Toko Konfigurasi Aplikasi

Anda dapat terhubung dengan toko App Configuration menggunakan Microsoft Entra ID (disarankan) atau string koneksi.

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

    • Microsoft.Azure.AppConfiguration.Functions.Worker
    • Microsoft.FeatureManagement
    • Azure Identitas
  2. Buka Program.cs dan perbarui kode sebagai berikut. Anda menambahkan Azure App Configuration sebagai sumber konfigurasi tambahan dengan memanggil AddAzureAppConfiguration metode .

    Anda menggunakan DefaultAzureCredential untuk mengautentikasi ke penyimpanan App Configuration Anda. Ikuti instruksi untuk menetapkan kredensial Anda ke dalam peran App Configuration Data Reader. Pastikan untuk mengizinkan waktu yang memadai agar izin disebarluaskan sebelum menjalankan aplikasi Anda.

    using Azure.Identity;
    using Microsoft.Azure.Functions.Worker.Builder;
    using Microsoft.Extensions.Configuration;
    using Microsoft.Extensions.Hosting;
    using Microsoft.FeatureManagement;
    
    var builder = FunctionsApplication.CreateBuilder(args);
    
    // Connect to Azure App Configuration
    builder.Configuration.AddAzureAppConfiguration(options =>
    {
        Uri endpoint = new(Environment.GetEnvironmentVariable("AZURE_APPCONFIG_ENDPOINT") ?? 
            throw new InvalidOperationException("The environment variable 'AZURE_APPCONFIG_ENDPOINT' is not set or is empty."));
        options.Connect(endpoint, new DefaultAzureCredential())
               // Load all feature flags with no label. To load feature flags with specific keys and labels, set via FeatureFlagOptions.Select.
               // Use the default refresh interval of 30 seconds. It can be overridden via FeatureFlagOptions.SetRefreshInterval.
               .UseFeatureFlags();
    });
    

    Metode ini UseFeatureFlags() menginstruksikan penyedia untuk memuat bendera fitur. Secara default, semua bendera fitur tanpa label dimuat dan di-refresh setiap 30 detik. Perilaku pemilihan dan refresh bendera fitur dikonfigurasi secara independen dari nilai kunci konfigurasi lainnya. Anda dapat menyesuaikan perilaku ini dengan meneruskan FeatureFlagOptions tindakan ke UseFeatureFlags metode . Gunakan FeatureFlagOptions.Select untuk menentukan kunci dan label bendera fitur untuk dimuat, dan gunakan FeatureFlagOptions.SetRefreshInterval untuk mengambil alih interval refresh default.

    Petunjuk / Saran

    Jika Anda tidak menginginkan konfigurasi selain bendera fitur yang akan dimuat ke aplikasi, Anda dapat memanggil options.Select("_") agar hanya memuat kunci dummy yang sebenarnya tidak ada "_". Pada dasarnya, semua nilai kunci konfigurasi tanpa label di penyimpanan App Configuration Anda akan dimuat jika tidak ada metode Select yang dipanggil.

  3. Perbarui file Program.cs untuk mengaktifkan refresh bendera fitur otomatis pada setiap eksekusi fungsi dengan menambahkan middleware Azure App Configuration. Anda juga mendaftarkan layanan manajemen fitur, memungkinkan Anda untuk menyuntikkan dan menggunakannya dalam kode fungsi Anda nanti.

    // Connect to Azure App Configuration
    builder.Configuration.AddAzureAppConfiguration(options =>
    {
        // Omitted the code added in the previous step.
    });
    
    // Add Azure App Configuration middleware and feature management to the service collection.
    builder.Services
        .AddAzureAppConfiguration()
        .AddFeatureManagement();
    
    // Use Azure App Configuration middleware for dynamic configuration and feature flag refresh.
    builder.UseAzureAppConfiguration();
    
    builder.ConfigureFunctionsWebApplication();
    
    builder.Build().Run();
    
  4. Buka Function1.cs, dan tambahkan namespace berikut.

    using Microsoft.FeatureManagement;
    

    Perbarui konstruktor untuk mendapatkan instans IVariantFeatureManagerSnapshot melalui injeksi dependensi.

    private readonly IVariantFeatureManagerSnapshot _featureManager;
    private readonly ILogger<Function1> _logger;
    
    public Function1(IVariantFeatureManagerSnapshot featureManager, ILogger<Function1> logger)
    {
        _featureManager = featureManager;
        _logger = logger;
    }
    
  5. Run Perbarui metode untuk mengembalikan pesan respons berdasarkan status bendera fitur.

    [Function("Function1")]
    public async Task<IActionResult> Run([HttpTrigger(AuthorizationLevel.Anonymous, "get", "post")] HttpRequest req)
    {
        _logger.LogInformation("C# HTTP trigger function processed a request.");
    
        // Read feature flag
        string featureName = "Beta";
        bool featureEnabled = await _featureManager.IsEnabledAsync(featureName, req.HttpContext.RequestAborted);
    
        return new OkObjectResult(featureEnabled
            ? $"The Feature Flag '{featureName}' is turned ON!"
            : $"The Feature Flag '{featureName}' is turned OFF");
    }
    

Uji fungsi secara lokal

  1. Atur variabel lingkungan.

    Atur variabel lingkungan bernama AZURE_APPCONFIG_ENDPOINT ke titik akhir dari penyimpanan App Configuration Anda yang ditemukan di bagian Gambaran Umum penyimpanan Anda pada portal Azure.

    Jika Anda menggunakan perintah Windows, jalankan perintah berikut dan hidupkan ulang perintah untuk memungkinkan perubahan berlaku:

    setx AZURE_APPCONFIG_ENDPOINT "<endpoint-of-your-app-configuration-store>"
    

    Jika Anda menggunakan PowerShell, jalankan perintah berikut:

    $Env:AZURE_APPCONFIG_ENDPOINT = "<endpoint-of-your-app-configuration-store>"
    

    Jika Anda menggunakan macOS atau Linux, jalankan perintah berikut:

    export AZURE_APPCONFIG_ENDPOINT='<endpoint-of-your-app-configuration-store>'
    
  2. Tekan F5 untuk menguji fungsi. Jika diminta, terima permintaan dari Visual Studio untuk mengunduh dan memasang alat Utama Azure Functions (CLI). Anda mungkin perlu mengaktifkan pengecualian firewall agar alat dapat menangani permintaan HTTP.

  3. Salin URL fungsi Anda dari output runtime Azure Functions.

    Penelusuran kesalahan Fungsi Mulai Cepat di VS

  4. Tempelkan URL untuk permintaan HTTP ke bar alamat browser Anda. Gambar berikut menunjukkan respons yang menunjukkan bahwa bendera fitur Beta dinonaktifkan.

    Penanda fitur Fungsi Quickstart dinonaktifkan

  5. Di portal Azure, buka penyimpanan App Configuration Anda. Di bawah Operasi, pilih Pengelola fitur, temukan bendera fitur Beta , dan atur tombol Diaktifkan ke Aktif.

  6. Segarkan browser beberapa kali. Saat jendela waktu interval refresh berlalu, halaman berubah untuk menunjukkan bendera fitur Beta diaktifkan, seperti yang ditunjukkan pada gambar.

    Penanda fitur Fungsi Cepat Mulai diaktifkan

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 panduan memulai cepat ini, Anda membuat flag fitur dan menggunakannya pada aplikasi Azure Functions.

Untuk penjelasan lengkap pustaka manajemen fitur .NET, silakan lanjutkan ke dokumen berikut.

Untuk mempelajari selengkapnya tentang mengelola bendera fitur di Azure App Configuration, lanjutkan ke tutorial berikut.