共用方式為


教學課程:在 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. RandomFilter建立 時註冊 FeatureManager

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

功能篩選作用中

當您執行應用程式時,組態提供者會從 Azure 應用程式組態載入 Beta 功能旗標。 isEnabled("Beta") 方法的結果將會列印至主控台。 由於 RandomFilter 是由 Beta 功能旗標實作及使用,因此結果將有 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

下一步

若要深入了解內建功能篩選,請繼續進行下列教學課程。