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

教程:在 JavaScript 应用程序中启用使用自定义筛选器的条件功能

功能标志可以使用功能筛选器有条件地启用功能。 若要了解有关功能筛选器的详细信息,请参阅教程:通过功能筛选器启用条件功能

本教程中使用的示例基于功能管理快速入门中介绍的 Node.js 应用程序。 在继续学习之前,请完成快速入门,创建具有 Beta 功能标志的 Node.js 应用程序。 完成后,必须将自定义功能筛选器添加到你的应用程序配置存储中的 Beta 功能标志。

在本教程中,你将了解如何实现自定义功能筛选器,并使用功能筛选器有条件地启用功能。 我们使用 Node.js 控制台应用作为示例,但你也可以在其他 JavaScript 应用程序中使用自定义功能筛选器。

先决条件

实现自定义功能筛选器

你已在先决条件中添加了一个名为 Random 的自定义功能筛选器,其中包含你的 Beta 功能标志的 Percentage 参数。 接下来,实现功能筛选器,根据 Percentage 参数定义的几率启用 Beta 功能标志

  1. 打开 app.js 文件,使用以下代码添加 RandomFilter

    class RandomFilter {
        name = "Random";
        evaluate(context) {
            const percentage = context.parameters.Percentage;
            const randomNumber = Math.random() * 100;
            return randomNumber <= percentage;
        }
    }
    

    你添加了一个 RandomFilter 类,该类具有一个名为 evaluate 的方法,每当评估功能标志时都会调用该方法。 在 evaluate 中,功能筛选器通过返回 true 来启用功能标志。

    你将 RandomFilter 的名称设置为“Random”,这与你在 Azure 应用程序配置的 Beta 功能标志中设置的筛选器名称匹配

  2. 在创建 FeatureManager 时注册 RandomFilter

    const fm = new FeatureManager(ffProvider, {customFilters: [new RandomFilter()]});
    

功能筛选器在使用中

运行应用程序时,配置提供程序将从 Azure 应用配置加载 Beta 功能标志isEnabled("Beta") 方法的结果将输出到控制台。 由于 Beta 功能标志实现并使用 RandomFilter,因此结果将在 50% 的情况下为 True,在另外 50% 的情况下为 False

运行应用程序时,将显示 Beta 功能标志有时启用,有时不启用

Beta is enabled: true
Beta is enabled: false
Beta is enabled: false
Beta is enabled: true
Beta is enabled: true
Beta is enabled: false
Beta is enabled: false
Beta is enabled: false
Beta is enabled: true
Beta is enabled: true

后续步骤

若要详细了解内置功能筛选器,请继续学习以下教程。