Включение условных флагов компонентов с помощью фильтров компонентов

Флаги компонентов позволяют активировать или деактивировать функциональные возможности в приложении. Простой флаг компонента имеет значение "вкл." или "выкл.". Приложение при этом всегда работает одинаково. Например, можно развернуть новый компонент, связанный с флагом компонента. После активации этого флага все пользователи видят появление нового компонента. После его отключения соответствующий компонент скрывается.

При этом условный флаг компонента можно включать и отключать динамически. Возможно различное поведение приложения в зависимости от условий для флага. Предположим, мы хотим отобразить новую функцию небольшому числу пользователей. Условный флаг компонента можно активировать для некоторых пользователей, одновременно отключив его для других. Фильтры компонентов определяют состояние флага компонента при каждой проверке.

Библиотека Microsoft.FeatureManagement включает следующие встроенные фильтры функций, доступные на портале Конфигурация приложений Azure.

  • Фильтр интервала времени включает флаг компонента во время указанного периода времени.
  • Целевой фильтр включает флаг функции для указанных пользователей и групп.

Вы также можете создать собственный фильтр функций, реализующий Microsoft.FeatureManagement.IFeatureFilter интерфейс. Дополнительные сведения см. в разделе "Реализация фильтра компонентов".

Необходимые компоненты

Регистрация фильтра компонентов

Если у вас есть пользовательский фильтр компонентов, его можно зарегистрировать, вызвав AddFeatureFilter метод.

services.AddFeatureManagement()
        .AddFeatureFilter<MyCriteriaFilter>();

Начиная с версии 3.0.0Microsoft.FeatureManagement, следующие встроенные фильтры регистрируются автоматически в рамках AddFeatureManagement вызова, поэтому их не нужно регистрировать.

  • TimeWindowFilter
  • ContextualTargetingFilter
  • PercentageFilter

Совет

Дополнительные сведения об использовании TargetingFilterсм. в статье "Включение поэтапного развертывания функций для целевых аудиторий".

Добавление фильтра компонентов в флаг компонента

В этом разделе описано, как добавить фильтр компонентов в флаг бета-функции, созданный в кратком руководстве. Следующие шаги используют встроенный TimeWindowFilter в качестве примера.

  1. В портал Azure перейдите в хранилище конфигураций и выберите диспетчер компонентов.

    Screenshot of the Azure portal, selecting the Edit option for the **Beta** feature flag, under Feature manager.

  2. В строке с флагом бета-функции , созданным в кратком руководстве, выберите контекстное меню и измените его.

  3. В открывающейся области флага функции "Изменить" проверка флажок "Включить функцию" проверка box, если он еще не включен. Затем проверка фильтр компонентов use проверка box и нажмите кнопку "Создать".

    Screenshot of the Azure portal, filling out the form 'Edit feature flag'.

  4. Откроется панель "Создание нового фильтра ". В разделе "Тип фильтра" выберите фильтр окна времени.

    Screenshot of the Azure portal, creating a new time window filter.

  5. Задайте для параметра "Дата начала" значение Custom и выберите время в течение нескольких минут перед текущим временем. Задайте для даты окончания срока действия значение "Никогда"

  6. Нажмите кнопку "Добавить ", чтобы сохранить фильтр новых функций и вернуться на экран флага функции "Изменить".

  7. Созданный фильтр компонентов теперь указан в сведениях о флаге компонента. Нажмите кнопку "Применить" , чтобы сохранить параметры флага новой функции.

    Screenshot of the Azure portal, applying new time window filter.

  8. На странице диспетчера компонентов флаг компонента теперь имеет значение фильтра компонентов 1.

    Screenshot of the Azure portal, displaying updated feature flag.

Фильтры компонентов в действии

Повторно запустите приложение, созданное в кратком руководстве. Если текущее время превышает время начала, заданное для фильтра временных окон, на панели инструментов не появится элемент меню бета-версии . Это связано с тем, что флаг бета-функции отключен фильтром временных окон.

После того как время начала прошло, обновите браузер несколько раз. Вы заметите, что теперь появится пункт меню "Бета-версия ". Это связано с тем, что флаг бета-функции теперь включен фильтром временных окон.

Следующие шаги