Заметка
Доступ к этой странице требует авторизации. Вы можете попробовать войти в систему или изменить каталог.
Доступ к этой странице требует авторизации. Вы можете попробовать сменить директорию.
Флаги компонентов могут использовать фильтры компонентов для условного включения функций. Дополнительные сведения о фильтрах функций см. в статье "Включение условных функций" с помощью фильтров компонентов.
Пример, используемый в этом руководстве, основан на приложении Python, представленном в кратком руководстве по управлению функциями. Прежде чем продолжить, выполните краткое руководство по созданию приложения Python с флагом бета-функции . После завершения необходимо добавить пользовательский фильтркомпонентов в флаг бета-функции в хранилище Конфигурация приложений.
Из этой статьи вы узнаете, как реализовать пользовательский фильтр функций и использовать фильтр компонентов для условного включения функций.
Необходимые компоненты
- Создайте приложение Python с флагом компонента.
- Добавление настраиваемого фильтра компонентов в флаг компонента
Реализация настраиваемого фильтра компонентов
Вы добавили пользовательский фильтр функций с именем Random с параметром "Процент" для флага бета-функции в предварительных требованиях. Затем вы реализуете фильтр компонентов, чтобы включить флаг бета-функции на основе вероятности, определенной параметром Percentage .
RandomFilter.pyДобавьте файл со следующим кодом.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Вы добавили класс, реализующий абстрактный
RandomFilterкласс из библиотекиFeatureManagement.FeatureFilterКлассFeatureFilterимеет один метод с именемevaluate, который вызывается при оценке флага компонента. Вevaluateфильтре функций флаг компонента включается возвращаемыйtrueфлаг компонента.Вы декорировали фильтр
FeatureFilter.aliasRandomFilter, чтобы дать фильтру псевдоним Случайный, который соответствует имени фильтра, заданному в флаге бета-функции в Конфигурация приложений Azure.Откройте файл app.py и зарегистрируйте
RandomFilterего при созданииFeatureManager. Кроме того, измените код, чтобы не обновляться автоматически, а также получать доступ к флагу бета-функции несколько раз, как показано ниже.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"))
Фильтр компонентов в действии
При запуске приложения поставщик конфигурации загрузит флаг бета-функции из Конфигурация приложений Azure. Результат is_enabled("Beta") метода будет напечатан в консоли.
RandomFilter По мере реализации и использования флагом бета-функции результат будет составлять True 50 процентов времени, а False остальные 50 процентов времени.
При запуске приложения показано, что флаг бета-функции иногда включен, а иногда и нет.
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
Следующие шаги
Дополнительные сведения о встроенных фильтрах функций см. в следующих документах.