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

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

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

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 门户中,转到你的配置存储并选择“功能管理器”

    Azure 门户的屏幕截图,其中在功能管理器下选中了 **Beta** 功能标志的“编辑”选项。

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

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

    在 Azure 门户中填写表单“编辑功能标志”的屏幕截图。

  4. 此时会打开“创建新筛选器”窗格。 在“筛选器类型”下,选择“时段筛选器”

    在 Azure 门户中创建新的时间窗口筛选器的屏幕截图。

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

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

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

    在 Azure 门户中应用新的时间窗口筛选器的屏幕截图。

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

    在 Azure 门户中显示更新的功能标志的屏幕截图。

正在起作用的功能筛选器

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

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

后续步骤