Включение условных флагов компонентов с помощью фильтров компонентов
Флаги компонентов позволяют активировать или деактивировать функциональные возможности в приложении. Простой флаг компонента имеет значение "вкл." или "выкл.". Приложение при этом всегда работает одинаково. Например, можно развернуть новый компонент, связанный с флагом компонента. После активации этого флага все пользователи видят появление нового компонента. После его отключения соответствующий компонент скрывается.
При этом условный флаг компонента можно включать и отключать динамически. Возможно различное поведение приложения в зависимости от условий для флага. Предположим, мы хотим отобразить новую функцию небольшому числу пользователей. Условный флаг компонента можно активировать для некоторых пользователей, одновременно отключив его для других. Фильтры компонентов определяют состояние флага компонента при каждой проверке.
Библиотека Microsoft.FeatureManagement
включает следующие встроенные фильтры функций, доступные на портале Конфигурация приложений Azure.
- Фильтр интервала времени включает флаг компонента во время указанного периода времени.
- Целевой фильтр включает флаг функции для указанных пользователей и групп.
Вы также можете создать собственный фильтр функций, реализующий Microsoft.FeatureManagement.IFeatureFilter
интерфейс. Дополнительные сведения см. в разделе "Реализация фильтра компонентов".
Необходимые компоненты
- Чтобы создать веб-приложение с флагом компонента, воспользуйтесь инструкциями в кратком руководстве по добавлению флагов компонентов в приложение ASP.NET Core.
Microsoft.FeatureManagement.AspNetCore
Установите пакет версии 3.0.0 или более поздней версии.
Регистрация фильтра компонентов
Если у вас есть пользовательский фильтр компонентов, его можно зарегистрировать, вызвав AddFeatureFilter
метод.
services.AddFeatureManagement()
.AddFeatureFilter<MyCriteriaFilter>();
Начиная с версии 3.0.0Microsoft.FeatureManagement
, следующие встроенные фильтры регистрируются автоматически в рамках AddFeatureManagement
вызова, поэтому их не нужно регистрировать.
TimeWindowFilter
ContextualTargetingFilter
PercentageFilter
Совет
Дополнительные сведения об использовании TargetingFilter
см. в статье "Включение поэтапного развертывания функций для целевых аудиторий".
Добавление фильтра компонентов в флаг компонента
В этом разделе описано, как добавить фильтр компонентов в флаг бета-функции, созданный в кратком руководстве. Следующие шаги используют встроенный TimeWindowFilter
в качестве примера.
В портал Azure перейдите в хранилище конфигураций и выберите диспетчер компонентов.
В строке с флагом бета-функции , созданным в кратком руководстве, выберите контекстное меню и измените его.
В открывающейся области флага функции "Изменить" проверка флажок "Включить функцию" проверка box, если он еще не включен. Затем проверка фильтр компонентов use проверка box и нажмите кнопку "Создать".
Откроется панель "Создание нового фильтра ". В разделе "Тип фильтра" выберите фильтр окна времени.
Задайте для параметра "Дата начала" значение Custom и выберите время в течение нескольких минут перед текущим временем. Задайте для даты окончания срока действия значение "Никогда"
Нажмите кнопку "Добавить ", чтобы сохранить фильтр новых функций и вернуться на экран флага функции "Изменить".
Созданный фильтр компонентов теперь указан в сведениях о флаге компонента. Нажмите кнопку "Применить" , чтобы сохранить параметры флага новой функции.
На странице диспетчера компонентов флаг компонента теперь имеет значение фильтра компонентов 1.
Фильтры компонентов в действии
Повторно запустите приложение, созданное в кратком руководстве. Если текущее время превышает время начала, заданное для фильтра временных окон, на панели инструментов не появится элемент меню бета-версии . Это связано с тем, что флаг бета-функции отключен фильтром временных окон.
После того как время начала прошло, обновите браузер несколько раз. Вы заметите, что теперь появится пункт меню "Бета-версия ". Это связано с тем, что флаг бета-функции теперь включен фильтром временных окон.