使用功能筛选器启用条件功能标志
使用功能标志可以在应用程序中激活或停用功能。 简单的功能标志为“开”或“关”。 应用程序会始终采用相同的行为方式。 例如,你可以在一个功能标志后面推出新功能。 启用该功能标志后,所有用户都将看到新功能。 禁用功能标志将隐藏新功能。
相比之下,使用“条件功能标志”可以动态启用或禁用功能标志。 应用程序的行为可能会有所不同,具体取决于功能标志条件。 假设要首先向小部分用户显示新功能。 使用条件功能标志可以为某些用户启用功能标志,同时为其他用户禁用该标志。 功能筛选器在每次计算出其结果时确定功能标志的状态。
Microsoft.FeatureManagement
库包括可从 Azure 应用程序配置门户访问的以下内置功能筛选器。
- 时段筛选器启用指定时间段内的功能标志。
- 目标筛选器为指定的用户和组启用功能标志。
还可以创建自己的功能筛选器,用于实现 Microsoft.FeatureManagement.IFeatureFilter
接口。 有关详细信息,请参阅实现功能筛选器。
先决条件
- 遵循快速入门:将功能标志添加到 ASP.NET Core 应用中的说明,以创建具有功能标志的 Web 应用。
- 安装版本 3.0.0 或更高版本的
Microsoft.FeatureManagement.AspNetCore
包。
注册功能筛选器
如果有自定义功能筛选器,可以通过调用 AddFeatureFilter
方法注册它。
services.AddFeatureManagement()
.AddFeatureFilter<MyCriteriaFilter>();
从 Microsoft.FeatureManagement
的版本 3.0.0 开始,以下内置筛选器在 AddFeatureManagement
调用中自动注册,因此你无需注册它们。
TimeWindowFilter
ContextualTargetingFilter
PercentageFilter
提示
有关使用 TargetingFilter
的详细信息,请参阅为目标受众启用功能的分阶段推出。
向功能标志添加功能筛选器
在本部分中,你将了解如何将功能筛选器添加到在快速入门中创建的 Beta 版功能标志。 以下步骤使用内置 TimeWindowFilter
作为示例。
在 Azure 门户中,转到你的配置存储并选择“功能管理器”。
在快速入门中创建的 Beta 版功能标志所在的行上,选择上下文菜单,然后选择“编辑”。
在打开的“编辑功能标志”窗格中,选中“启用功能标志”复选框(如果尚未启用)。 然后选中“使用功能筛选器”复选框,并选择“创建”。
此时会打开“创建新筛选器”窗格。 在“筛选器类型”下,选择“时段筛选器”。
将“开始日期”设置为“自定义”,然后选择一个早于你当前时间几分钟的时间。 将“到期日期”设置为“从不”
选择“添加”以保存新的功能筛选器并返回到“编辑功能标志”屏幕。
你创建的功能筛选器现已列在功能标志详细信息中。 选择“应用”以保存新功能标志设置。
现在,在“功能管理器”页上,功能标志的“功能筛选器”值为“1”。
正在起作用的功能筛选器
重新启动在快速入门中创建的应用程序。 如果当前时间早于时段筛选器设置的开始时间,则工具栏上不会显示 Beta 版菜单项。 这是因为时段筛选器禁用了 Beta 版功能标志。
开始时间一过,请刷新几次浏览器。 你会注意到,现在会显示 Beta 版菜单项。 这是因为 Beta 版功能标志现在由时段筛选器启用。