Dela via


Aktivera villkorsstyrda funktioner med ett anpassat filter i ett Python-program

Funktionsflaggor kan använda funktionsfilter för att aktivera funktioner villkorligt. Mer information om funktionsfilter finns i Aktivera villkorsstyrda funktioner med funktionsfilter.

Exemplet som används i den här guiden baseras på Python-programmet som introducerades i snabbstarten för funktionshantering. Innan du fortsätter slutför du snabbstarten för att skapa ett Python-program med en betafunktionsflagga . När du är klar måste du lägga till ett anpassat funktionsfilter i betafunktionsflaggan i appkonfigurationsarkivet.

I den här artikeln lär du dig hur du implementerar ett anpassat funktionsfilter och använder funktionsfiltret för att aktivera funktioner villkorligt.

Förutsättningar

Implementera ett anpassat funktionsfilter

Du har lagt till ett anpassat funktionsfilter med namnet Random med en procentparameter för din Beta-funktionsflagga i förutsättningarna. Sedan implementerar du funktionsfiltret för att aktivera betafunktionsflaggan baserat på den chans som definieras av parametern Procent .

  1. Lägg till en RandomFilter.py fil med följande kod.

    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
    

    Du har lagt till en RandomFilter klass som implementerar den FeatureFilter abstrakta klassen från FeatureManagement biblioteket. Klassen FeatureFilter har en enda metod med namnet evaluate, som anropas när en funktionsflagga utvärderas. I evaluateaktiverar ett funktionsfilter en funktionsflagga genom att truereturnera .

    Du har dekorerat ett FeatureFilter.alias till RandomFilter för att ge filtret ett alias Slumpmässigt, vilket matchar filternamnet som du angav i funktionsflaggan Beta i Azure App Configuration.

  2. Öppna filen app.py och registrera RandomFilter när du FeatureManagerskapar . Ändra också koden så att den inte uppdateras automatiskt och för att även få åtkomst till betafunktionsflaggan några gånger, enligt nedan.

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

Funktionsfilter i praktiken

När du kör programmet läser konfigurationsprovidern in betafunktionsflaggan från Azure App Configuration. Resultatet av is_enabled("Beta") metoden skrivs ut till konsolen. RandomFilter När den implementeras och används av betafunktionsflaggan blir True resultatet 50 procent av tiden och False de övriga 50 procenten av tiden.

När programmet körs visas att betafunktionsflaggan ibland är aktiverad och ibland inte.

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

Nästa steg

Om du vill veta mer om de inbyggda funktionsfiltren fortsätter du till följande dokument.