Bagikan melalui


Mengaktifkan fitur kondisional dengan filter kustom dalam aplikasi Python

Bendera fitur dapat menggunakan filter fitur untuk mengaktifkan fitur secara kondisional. Untuk mempelajari selengkapnya tentang filter fitur, lihat Mengaktifkan fitur kondisional dengan filter fitur.

Contoh yang digunakan dalam panduan ini didasarkan pada aplikasi Python yang diperkenalkan dalam mulai cepat manajemen fitur. Sebelum melanjutkan lebih lanjut, selesaikan mulai cepat untuk membuat aplikasi Python dengan bendera fitur Beta . Setelah selesai, Anda harus menambahkan filter fitur kustom ke bendera fitur Beta di penyimpanan App Configuration Anda.

Dalam artikel ini, Anda mempelajari cara menerapkan filter fitur kustom dan menggunakan filter fitur untuk mengaktifkan fitur secara kondisional.

Prasyarat

Menerapkan filter fitur kustom

Anda telah menambahkan filter fitur kustom bernama Acak dengan parameter Persentase untuk bendera fitur Beta Anda di prasyarat. Selanjutnya, Anda menerapkan filter fitur untuk mengaktifkan bendera fitur Beta berdasarkan kesempatan yang ditentukan oleh parameter Persentase .

  1. RandomFilter.py Tambahkan file dengan kode berikut.

    import random
    from featuremanagement import FeatureFilter
    
    @FeatureFilter.alias("Random")
    class RandomFilter(FeatureFilter):
    
        def evaluate(self, context, **kwargs):
            value = context.get("parameters", {}).get("Value", 0)
            if value < random.randint(0, 100):
                return True
            return False
    

    Anda menambahkan RandomFilter kelas yang mengimplementasikan FeatureFilter kelas abstrak dari FeatureManagement pustaka. Kelas FeatureFilter memiliki satu metode bernama evaluate, yang dipanggil setiap kali bendera fitur dievaluasi. Di evaluate, filter fitur memungkinkan bendera fitur dengan mengembalikan true.

    Anda menghias FeatureFilter.aliasRandomFilter ke untuk memberi filter Anda alias Acak, yang cocok dengan nama filter yang Anda tetapkan di bendera fitur Beta di Azure App Configuration.

  2. Buka file app.py dan daftarkan RandomFilter saat membuat FeatureManager. Selain itu, ubah kode agar tidak di-refresh secara otomatis dan untuk juga mengakses bendera fitur Beta beberapa kali, seperti yang terlihat di bawah ini.

    from featuremanagement import FeatureManager
    from azure.appconfiguration.provider import load
    from azure.identity import DefaultAzureCredential
    import os
    
    endpoint = os.environ.get("APPCONFIGURATION_ENDPOINT_STRING")
    
    # Connect to Azure App Configuration using and Endpoint and Azure Entra ID
    # feature_flag_enabled makes it so that the provider will load feature flags from Azure App Configuration
    # feature_flag_refresh_enabled makes it so that the provider will refresh feature flags
    # from Azure App Configuration, when the refresh operation is triggered
    config = load(endpoint=endpoint, credential=DefaultAzureCredential(), feature_flag_enabled=True)
    
    feature_manager = FeatureManager(config, feature_filters=[RandomFilter()])
    
    for i in range(0, 10):
        print("Beta is", feature_manager.is_enabled("Beta"))
    

Filter fitur sedang beraksi

Saat Anda menjalankan aplikasi, penyedia konfigurasi akan memuat bendera fitur Beta dari Azure App Configuration. Hasil metode is_enabled("Beta") akan dicetak ke konsol. Seperti yang RandomFilter diimplementasikan dan digunakan oleh bendera fitur Beta , hasilnya akan menjadi True 50 persen dari waktu dan False 50 persen lainnya dari waktu.

Menjalankan aplikasi akan menunjukkan bahwa bendera fitur Beta terkadang diaktifkan dan terkadang tidak.

Beta is True
Beta is False
Beta is True
Beta is True
Beta is True
Beta is False
Beta is False
Beta is False
Beta is True
Beta is True

Langkah berikutnya

Untuk mempelajari selengkapnya tentang filter fitur bawaan, lanjutkan ke dokumen berikut.