Włączanie funkcji warunkowych przy użyciu filtru niestandardowego w aplikacji języka Python
Flagi funkcji mogą używać filtrów funkcji w celu warunkowego włączania funkcji. Aby dowiedzieć się więcej na temat filtrów funkcji, zobacz Włączanie funkcji warunkowych z filtrami funkcji.
Przykład używany w tym przewodniku jest oparty na aplikacji języka Python wprowadzonej w przewodniku Szybki start dotyczącym zarządzania funkcjami. Przed kontynuowaniem ukończ przewodnik Szybki start, aby utworzyć aplikację w języku Python z flagą funkcji beta . Po zakończeniu należy dodać niestandardowy filtr funkcji do flagi funkcji beta w magazynie App Configuration.
Z tego artykułu dowiesz się, jak zaimplementować niestandardowy filtr funkcji i użyć filtru funkcji w celu warunkowego włączenia funkcji.
Wymagania wstępne
- Utwórz aplikację w języku Python z flagą funkcji.
- Dodawanie niestandardowego filtru funkcji do flagi funkcji
Implementowanie niestandardowego filtru funkcji
Dodano niestandardowy filtr funkcji o nazwie Random z parametrem Procent dla flagi funkcji beta w wymaganiach wstępnych. Następnie zaimplementujesz filtr funkcji, aby włączyć flagę funkcji beta na podstawie prawdopodobieństwa zdefiniowanego przez parametr Percentage .
RandomFilter.py
Dodaj plik z następującym kodem.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
Dodano klasę, która implementuje klasę
RandomFilter
abstrakcyjnąFeatureFilter
zFeatureManagement
biblioteki. KlasaFeatureFilter
ma jedną metodę o nazwieevaluate
, która jest wywoływana za każdym razem, gdy zostanie obliczona flaga funkcji. Wevaluate
systemie filtr funkcji włącza flagę funkcji, zwracając wartośćtrue
.Element został ozdobiony wartością
FeatureFilter.alias
RandomFilter
, aby nadać filtrowi alias Losowy, który jest zgodny z nazwą filtru ustawioną w flagi funkcji Beta w konfiguracji aplikacja systemu Azure.Otwórz plik app.py i zarejestruj plik
RandomFilter
podczas tworzenia plikuFeatureManager
. Ponadto zmodyfikuj kod, aby nie odświeżył się automatycznie, a także kilka razy uzyskać dostęp do flagi funkcji beta , jak pokazano poniżej.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 funkcji w akcji
Po uruchomieniu aplikacji dostawca konfiguracji załaduje flagę funkcji Beta z aplikacja systemu Azure Configuration. Wynik is_enabled("Beta")
metody zostanie wydrukowany w konsoli programu . RandomFilter
Ponieważ element jest implementowany i używany przez flagę funkcji Beta, wynik będzie wynosić True
50 procent czasu i False
pozostałe 50 procent czasu.
Uruchomienie aplikacji spowoduje wyświetlenie, że flaga funkcji beta jest czasami włączona, a czasami nie.
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
Następne kroki
Aby dowiedzieć się więcej na temat wbudowanych filtrów funkcji, przejdź do następujących dokumentów.