Включение условных функций с помощью пользовательского фильтра в приложении JavaScript
Флаги компонентов могут использовать фильтры компонентов для условного включения функций. Дополнительные сведения о фильтрах функций см. в статье "Включение условных функций" с помощью фильтров компонентов.
Пример, используемый в этом руководстве, основан на приложении Node.js, представленном в кратком руководстве по управлению функциями. Прежде чем продолжить, выполните краткое руководство по созданию приложения Node.js с флагом бета-функции . После завершения необходимо добавить пользовательский фильтр компонентов в флаг бета-функции в хранилище Конфигурация приложений.
Из этой статьи вы узнаете, как реализовать пользовательский фильтр функций и использовать фильтр компонентов для условного включения функций. Мы используем консольное приложение Node.js в качестве примера, но вы также можете использовать пользовательский фильтр компонентов в других приложениях JavaScript.
Необходимые компоненты
- Создайте консольное приложение с флагом компонента.
- Добавление настраиваемого фильтра компонентов в флаг компонента
Реализация настраиваемого фильтра компонентов
Вы добавили пользовательский фильтр функций с именем Random с параметром "Процент" для флага бета-функции в предварительных требованиях. Затем вы реализуете фильтр компонентов, чтобы включить флаг бета-функции на основе вероятности, определенной параметром Percentage .
Откройте файл app.js и добавьте
RandomFilter
следующий код.class RandomFilter { name = "Random"; evaluate(context) { const percentage = context.parameters.Percentage; const randomNumber = Math.random() * 100; return randomNumber <= percentage; } }
Вы добавили
RandomFilter
класс с одним именем методаevaluate
, который вызывается при оценке флага компонента. Вevaluate
фильтре функций флаг компонента включается возвращаемыйtrue
флаг компонента.В Конфигурация приложений Azure задано имя
RandomFilter
фильтра, которое соответствует имени фильтра, заданному в флаге бета-функции.RandomFilter
Зарегистрируйтесь при созданииFeatureManager
.const fm = new FeatureManager(ffProvider, {customFilters: [new RandomFilter()]});
Фильтр компонентов в действии
При запуске приложения поставщик конфигурации загрузит флаг бета-функции из Конфигурация приложений Azure. Результат isEnabled("Beta")
метода будет напечатан в консоли. RandomFilter
По мере реализации и использования флагом бета-функции результат будет составлять True
50 процентов времени, а False
остальные 50 процентов времени.
При запуске приложения показано, что флаг бета-функции иногда включен, а иногда и нет.
Beta is enabled: true
Beta is enabled: false
Beta is enabled: false
Beta is enabled: true
Beta is enabled: true
Beta is enabled: false
Beta is enabled: false
Beta is enabled: false
Beta is enabled: true
Beta is enabled: true
Следующие шаги
Дополнительные сведения о встроенных фильтрах функций см. в следующих документах.