你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

使用功能筛选器启用条件功能标志

使用功能标志可以在应用程序中激活或停用功能。 简单的功能标志为“开”或“关”。 应用程序会始终采用相同的行为方式。 例如,你可以在一个功能标志后面推出新功能。 启用该功能标志后,所有用户都将看到新功能。 禁用功能标志将隐藏新功能。

相比之下,使用“条件功能标志”可以动态启用或禁用功能标志。 应用程序的行为可能会有所不同,具体取决于功能标志条件。 假设要首先向小部分用户显示新功能。 使用条件功能标志可以为某些用户启用功能标志,同时为其他用户禁用该标志。 功能筛选器在每次计算出其结果时确定功能标志的状态。

Microsoft.FeatureManagement 库包括可从 Azure 应用程序配置门户访问的以下内置功能筛选器。

  • 时段筛选器启用指定时间段内的功能标志
  • 目标筛选器为指定的用户和组启用功能标志

还可以创建自己的功能筛选器,用于实现 Microsoft.FeatureManagement.IFeatureFilter 接口。 有关详细信息,请参阅实现功能筛选器

先决条件

注册功能筛选器

如果有自定义功能筛选器,可以通过调用 AddFeatureFilter 方法注册它。

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

Microsoft.FeatureManagement 的版本 3.0.0 开始,以下内置筛选器AddFeatureManagement 调用中自动注册,因此你无需注册它们

  • TimeWindowFilter
  • ContextualTargetingFilter
  • PercentageFilter

提示

有关使用 TargetingFilter 的详细信息,请参阅为目标受众启用功能的分阶段推出

向功能标志添加功能筛选器

在本部分中,你将了解如何将功能筛选器添加到在快速入门中创建的 Beta 版功能标志。 以下步骤使用内置 TimeWindowFilter 作为示例。

  1. 在 Azure 门户中,转到你的配置存储并选择“功能管理器”

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

  2. 在快速入门中创建的 Beta 版功能标志所在的行上,选择上下文菜单,然后选择“编辑”

  3. 在打开的“编辑功能标志”窗格中,选中“启用功能标志”复选框(如果尚未启用)。 然后选中“使用功能筛选器”复选框,并选择“创建”。

    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. 将“开始日期”设置为“自定义”,然后选择一个早于你当前时间几分钟的时间。 将“到期日期”设置为“从不”

  6. 选择“添加”以保存新的功能筛选器并返回到“编辑功能标志”屏幕。

  7. 你创建的功能筛选器现已列在功能标志详细信息中。 选择“应用”以保存新功能标志设置。

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

  8. 现在,在“功能管理器”页上,功能标志的“功能筛选器”值为“1”

    Screenshot of the Azure portal, displaying updated feature flag.

正在起作用的功能筛选器

重新启动在快速入门中创建的应用程序。 如果当前时间早于时段筛选器设置的开始时间,则工具栏上不会显示 Beta 版菜单项。 这是因为时段筛选器禁用了 Beta 版功能标志

开始时间一过,请刷新几次浏览器。 你会注意到,现在会显示 Beta 版菜单项。 这是因为 Beta 版功能标志现在由时段筛选器启用

后续步骤