Sdílet prostřednictvím


Kurz: Povolení podmíněných funkcí s vlastním filtrem v aplikaci v Pythonu

Příznaky funkcí můžou používat filtry funkcí k podmíněnému povolení funkcí. Další informace o filtrech funkcí najdete v tématu Kurz: Povolení podmíněných funkcí pomocí filtrů funkcí.

Příklad použitý v tomto kurzu vychází z aplikace Pythonu představené v rychlém startu pro správu funkcí. Než budete pokračovat, dokončete rychlý start a vytvořte aplikaci v Pythonu s příznakem funkce Beta . Po dokončení musíte přidat vlastní filtr funkcí do příznaku funkce Beta v Obchodě App Configuration Store.

V tomto kurzu se dozvíte, jak implementovat vlastní filtr funkcí a použít filtr funkcí k podmíněnému povolení funkcí.

Požadavky

Implementace vlastního filtru funkcí

Přidali jste vlastní filtr funkcí s názvem Random s parametrem Percentage pro příznak funkce Beta v požadavcích. Dále implementujete filtr funkcí, který povolí příznak funkce Beta na základě pravděpodobnosti definované parametrem Procento .

  1. RandomFilter.py Přidejte soubor s následujícím kódem.

    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
    

    Přidali RandomFilter jste třídu, která implementuje FeatureFilter abstraktní třídu z FeatureManagement knihovny. Třída FeatureFilter má jednu metodu s názvem evaluate, která se volá při každém vyhodnocení příznaku funkce. V evaluate, filtr funkce umožňuje příznak funkce vrácením true.

    Přizdobili FeatureFilter.alias jste filtr RandomFilter tak, aby byl alias náhodný, který odpovídá názvu filtru, který jste nastavili v příznaku funkce Beta v konfiguraci Aplikace Azure.

  2. Otevřete soubor app.py a zaregistrujte RandomFilter při vytváření souboru FeatureManager. Upravte také kód tak, aby se automaticky neaktualizuje a několikrát také přistupoval k příznaku funkce Beta , jak je vidět níže.

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

Filtr funkcí v akci

Když spustíte aplikaci, poskytovatel konfigurace načte příznak funkce Beta z Aplikace Azure Konfigurace. Výsledek is_enabled("Beta") metody se vytiskne do konzoly. Při implementaci RandomFilter a použití příznakem funkce Beta bude True výsledek 50 procent času a False dalších 50 procent času.

Spuštění aplikace zobrazí, že příznak funkce Beta je někdy povolený a někdy ne.

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

Další kroky

Další informace o předdefinovaných filtrech funkcí najdete v následujících kurzech.