クイックスタート: Node.js コンソール アプリに機能フラグを追加する

このクイックスタートでは、Azure App Configuration を Node.js コンソール アプリに組み込み、機能管理のエンドツーエンド実装を作成します。 App Configuration を使用し、すべての機能フラグを一箇所に格納し、その状態を制御できます。

JavaScript 機能管理ライブラリは、機能フラグのサポートにより、フレームワークを拡張します。 JavaScript 構成プロバイダーを介して、App Configuration とシームレスに統合されます。 例として、このチュートリアルでは、Node.js アプリで JavaScript 機能管理を使う方法を示します。

前提条件

機能フラグを追加する

App Configuration ストアに Beta という機能フラグを追加し、 ラベル と 説明 を既定値のままにします。 Azure portal または CLI を使用してストアに機能フラグを追加する方法の詳細については、「 機能フラグの作成」を参照してください。

ベータという名前の機能フラグを有効にする

機能フラグを使用する

  1. npm install コマンドを使用して機能管理をインストールします。

    npm install @microsoft/feature-management
    
  2. app.jsという名前 の ファイルを作成し、次のコードを追加します。

    DefaultAzureCredential を使って、App Configuration ストアに対する認証を行います。 手順に従って、資格情報に App Configuration データ閲覧者ロールを割り当てます。 アプリケーションを実行する前に、アクセス許可が伝わるのに十分な時間をおいてください。

    const sleepInMs = require("util").promisify(setTimeout);
    const { load } = require("@azure/app-configuration-provider");
    const { DefaultAzureCredential } = require("@azure/identity");
    const { FeatureManager, ConfigurationMapFeatureFlagProvider } = require("@microsoft/feature-management");
    const endpoint = process.env.AZURE_APPCONFIG_ENDPOINT;
    const credential = new DefaultAzureCredential(); // For more information, see https://learn.microsoft.com/azure/developer/javascript/sdk/credential-chains#use-defaultazurecredential-for-flexibility
    
    async function run() {
        // Connect to Azure App Configuration using endpoint and token credential
        const appConfig = await load(endpoint, credential, {
            featureFlagOptions: {
                enabled: true,
                // Note: selectors must be explicitly provided for feature flags.
                selectors: [{
                    keyFilter: "*"
                }],
                refresh: {
                    enabled: true,
                    refreshIntervalInMs: 10_000
                }
            }
        });
    
        // Create feature manager with feature flag provider that accesses feature flags from App Configuration
        const fm = new FeatureManager(
            new ConfigurationMapFeatureFlagProvider(appConfig));
    
        while (true) {
            await appConfig.refresh(); // Refresh to get the latest feature flag settings
            const isEnabled = await fm.isEnabled("Beta"); // Evaluate the feature flag
            console.log(`Beta is enabled: ${isEnabled}`);
            await sleepInMs(5000);
        }
    }
    
    run().catch(console.error);
    

アプリケーションの実行

  1. 環境変数を設定します。

    AZURE_APPCONFIG_ENDPOINTという名前の環境変数を、Azure portal のストアの概要にある App Configuration ストアのエンドポイントに設定します。

    Windows コマンド プロンプトを使用する場合は、次のコマンドを実行してコマンド プロンプトを再起動し、変更が反映されるようにします。

    setx AZURE_APPCONFIG_ENDPOINT "<AppConfigurationEndpoint>"
    

    PowerShell を使っている場合は、次のコマンドを実行します。

    $Env:AZURE_APPCONFIG_ENDPOINT = "<AppConfigurationEndpoint>"
    

    macOS または Linux を使用する場合は、次のコマンドを実行します。

    export AZURE_APPCONFIG_ENDPOINT='<AppConfigurationEndpoint>'
    
  2. 次のコマンドを実行して、アプリをローカルで実行します。

    node app.js
    
  3. ベータ機能フラグが無効になっているため、次のコンソール出力が表示されます。

    Beta is enabled: false
    
  4. Azure portal にサインインします。 [すべてのリソース] を選択し、前に作成した App Configuration ストアを選択します。

  5. 機能マネージャーを選択し、ベータ機能フラグを見つけます。 [有効] の下にあるチェック ボックスをオンにして、フラグを 有効にします。

  6. 数秒待つと、コンソールの出力が変更されます。

    Beta is enabled: true
    

次のステップ

JavaScript 機能管理ライブラリの詳細な機能の説明については、次のドキュメントに進んでください。

機能フラグを使用すると、アプリの機能をアクティブ化または非アクティブ化できますが、アプリのロジックに基づいて機能フラグをカスタマイズすることも必要になる場合があります。 機能フィルターを使用すると、機能フラグを条件に応じて有効にできます。 詳細については、次のチュートリアルに進んでください。

Azure App Configuration には、特定の期間またはアプリの特定の対象ユーザーに対してのみ機能フラグをアクティブ化できる組み込みの機能フィルターが用意されています。 詳細については、次のチュートリアルに進んでください。