Megosztás a következőn keresztül:


Feltételes szolgáltatások engedélyezése egyéni szűrővel Egy Python-alkalmazásban

A funkciójelzők funkciószűrőkkel feltételesen engedélyezhetik a funkciókat. A funkciószűrőkkel kapcsolatos további információkért lásd : Feltételes szolgáltatások engedélyezése funkciószűrőkkel.

Az ebben az útmutatóban használt példa a szolgáltatásfelügyeleti rövid útmutatóban bemutatott Python-alkalmazáson alapul. Mielőtt továbblép, végezze el a rövid útmutatót egy Python-alkalmazás bétaverziós funkciójelzővel való létrehozásához. Ha végzett, hozzá kell adnia egy egyéni funkciószűrőt az Alkalmazáskonfigurációs áruház bétafunkció-jelzőjéhez .

Ebből a cikkből megtudhatja, hogyan implementálhat egyéni funkciószűrőt, és hogyan használhatja a funkciószűrőt a szolgáltatások feltételes engedélyezéséhez.

Előfeltételek

Egyéni funkciószűrő implementálása

Az előfeltételek között hozzáadott egy Véletlenszerű nevű egyéni funkciószűrőt a bétaverzió-funkciójelző százalékos paraméterével. Ezután implementálja a funkciószűrőt, hogy engedélyezze a bétaverzió funkciójelzőjét a Százalék paraméter által meghatározott lehetőség alapján.

  1. Adjon hozzá egy RandomFilter.py fájlt az alábbi kóddal.

    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
    

    Hozzáadott egy osztályt RandomFilter , amely implementálja az FeatureFilter absztrakt osztályt a FeatureManagement tárból. Az FeatureFilter osztály egyetlen metódussal evaluaterendelkezik, amelyet a rendszer a funkciójelző kiértékelésekor hív meg. A evaluatefunkciószűrők a visszatéréssel engedélyezik a funkciójelzőt true.

    A szűrőhöz egy véletlenszerű aliast adottFeatureFilter.alias, amely megfelel a Azure-alkalmazás Konfiguráció bétafunkció-jelölőjébenbeállított szűrőnévnek.RandomFilter

  2. Nyissa meg a app.py fájlt, és regisztrálja a RandomFilter fájlt a FeatureManagerlétrehozásakor. Módosítsa a kódot úgy is, hogy ne frissüljön automatikusan, és néhányszor a bétaverzió funkciójelzőjét is elérhesse, ahogy az alább látható.

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

Funkciószűrő működés közben

Az alkalmazás futtatásakor a konfigurációszolgáltató betölti a bétafunkció-jelzőt Azure-alkalmazás Konfigurációból. A metódus eredményét a is_enabled("Beta") rendszer a konzolra nyomtatja. Mivel a RandomFilter bétaverzió funkciójelzője implementálva és használva vanTrue, az eredmény az idő False 50 százaléka, a többi 50 százalék lesz.

Az alkalmazás futtatása azt mutatja, hogy a bétaverzió funkciójelzője néha engedélyezve van, és néha nem.

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

Következő lépések

A beépített funkciószűrőkről az alábbi dokumentumokban olvashat bővebben.