Öğretici: Python uygulamasında özel filtreyle koşullu özellikleri etkinleştirme

Özellik bayrakları, özellikleri koşullu olarak etkinleştirmek için özellik filtrelerini kullanabilir. Özellik filtreleri hakkında daha fazla bilgi edinmek için bkz . Öğretici: Özellik filtreleri ile koşullu özellikleri etkinleştirme.

Bu öğreticide kullanılan örnek, özellik yönetimi hızlı başlangıcında sunulan Python uygulamasını temel alır. Devam etmeden önce, Beta özellik bayrağına sahip bir Python uygulaması oluşturmak için hızlı başlangıcı tamamlayın. Tamamlandıktan sonra, Uygulama Yapılandırması deponuzdaki Beta özellik bayrağına özel bir özellik filtresi eklemeniz gerekir.

Bu öğreticide, özel özellik filtresi uygulamayı ve özellikleri koşullu olarak etkinleştirmek için özellik filtresini kullanmayı öğreneceksiniz.

Önkoşullar

Özel özellik filtresi uygulama

Önkoşullarda Beta özellik bayrağınız için Yüzde parametresiyle Random adlı özel bir özellik filtresi eklediniz. Ardından, Yüzde parametresi tarafından tanımlanan şansa göre Beta özellik bayrağını etkinleştirmek için özellik filtresini uygulayacaksınız.

  1. Aşağıdaki koda sahip bir RandomFilter.py dosya ekleyin.

    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
    

    Kitaplıktan soyut sınıfı uygulayan FeatureFilter bir RandomFilter sınıf ekledinizFeatureManagement. sınıfı, FeatureFilter bir özellik bayrağı her değerlendirildiğinde çağrılan adlı evaluatetek bir yönteme sahiptir. içinde evaluate, bir özellik filtresi döndürerek trueözellik bayrağını etkinleştirir.

    filtrenize, Azure Uygulaması Yapılandırması'ndaki Beta özellik bayrağında ayarladığınız filtre adıyla eşleşen rastgele bir diğer ad vermek için öğesini olarak dekore FeatureFilter.alias RandomFilter ettiniz.

  2. app.py dosyasını açın ve oluştururken FeatureManagerdosyasını RandomFilter kaydedin. Ayrıca, aşağıda gösterildiği gibi kodu otomatik olarak yenilenmeyecek ve Beta özellik bayrağına birkaç kez erişecek şekilde değiştirin.

    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"))
    

Özellik filtresi çalışır durumda

Uygulamayı çalıştırdığınızda yapılandırma sağlayıcısı, Azure Uygulaması Yapılandırması'ndan Beta özellik bayrağını yükler. yönteminin is_enabled("Beta") sonucu konsola yazdırılır. RandomFilter, Beta özellik bayrağı tarafından uygulandığında ve kullanıldığından, sonuç True yüzde 50 ve False diğer yüzde 50'si olur.

Uygulamayı çalıştırmak, Beta özellik bayrağının bazen etkinleştirildiğini ve bazen etkinleştirilmediğini gösterir.

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

Sonraki adımlar

Yerleşik özellik filtreleri hakkında daha fazla bilgi edinmek için aşağıdaki öğreticilere geçin.