クイックスタート: Spring Boot アプリに機能フラグを追加する

このクイック スタートでは、Azure App Configurationで機能フラグを作成し、それを使用して Spring Boot アプリを動的に制御し、機能管理のエンドツーエンドの実装を作成します。

Spring Boot Feature Management ライブラリは、Azure ライブラリに依存<>しません。 また、Spring Boot 構成プロバイダーを介して、App Configuration とシームレスに統合されます。

前提条件

機能フラグを追加する

Beta という機能フラグを App Configuration ストアに追加し、[ラベル][説明] を既定値のままにします。 Azure portal または CLI を使用してストアに機能フラグを追加する方法の詳細については、「機能フラグを作成する」を参照してください。 この段階で、[機能フラグを有効にする] チェック ボックスをオフにする必要があります。

Beta という名前の [機能フラグを有効にする] チェックボックスを示すスクリーンショット。

コンソール アプリを作成する

  1. 新しい Spring Boot プロジェクトを作成します。

    1. Spring Initializr に移動します。

    2. 次のオプションを指定します。

      • JavaMaven プロジェクトを生成します。
      • 3.0 以上の Spring Boot バージョンを指定します。
      • アプリケーションのグループ (Group)成果物 (Artifact) の名前を指定します。 この記事では、com.exampledemo を使用します。
    3. 前の各オプションを指定してから、[プロジェクトの生成] を選択します。 ローカル コンピューターにプロジェクトをダウンロードして展開します。

  2. アプリのルート ディレクトリで pom.xml を見つけて、テキスト エディターで開きます。

  3. <dependencies>の一覧に次を追加します。

    <dependency>
        <groupId>com.azure.spring</groupId>
        <artifactId>spring-cloud-azure-appconfiguration-config</artifactId>
    </dependency>
    <dependency>
        <groupId>com.azure.spring</groupId>
        <artifactId>spring-cloud-azure-feature-management</artifactId>
    </dependency>
    
  4. Spring Cloud Azure ライブラリのバージョンを管理するには、次の <dependencyManagement> セクションを追加します。

    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>com.azure.spring</groupId>
                <artifactId>spring-cloud-azure-dependencies</artifactId>
                <version>7.2.0</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>
    
  5. アプリの resources ディレクトリに移動し、application.properties または application.yaml ファイルを開きます。

    DefaultAzureCredential を使って、App Configuration ストアに対する認証を行います。 承認を機能させるには、アプリが使用する資格情報に アプリ構成データ閲覧者 ロールを付与する必要があります。 手順については、「 トークン資格情報を使用した認証」を参照してください。アプリケーションを実行する前に、アクセス許可が反映されるまでの十分な時間を確保してください。

    spring.config.import=azureAppConfiguration
    spring.cloud.azure.appconfiguration.stores[0].endpoint= ${AZURE_APPCONFIG_ENDPOINT}
    spring.cloud.azure.appconfiguration.stores[0].feature-flags.enabled=true
    
  6. 次のコードを使用して、アプリのパッケージ ディレクトリ内の DemoApplication.java ファイルを更新します。

    import org.springframework.boot.CommandLineRunner;
    import org.springframework.boot.SpringApplication;
    import org.springframework.boot.autoconfigure.SpringBootApplication;
    import org.springframework.context.annotation.Bean;
    
    import com.azure.spring.cloud.feature.management.FeatureManager;
    
    @SpringBootApplication
    public class DemoApplication {
    
        public static void main(String[] args) {
            SpringApplication.run(DemoApplication.class, args);
        }
    
        @Bean
        public CommandLineRunner runner(FeatureManager featureManager) {
            return args -> {
                System.out.println("Beta is enabled: " + featureManager.isEnabled("Beta"));
            };
        }
    }
    
  7. AZURE_APPCONFIG_ENDPOINTという名前の環境変数を設定し、App Configuration ストアのエンドポイントに設定します。 コマンド ラインで次のコマンドを実行してコマンド プロンプトを再起動し、変更が反映されるようにします。

    setx AZURE_APPCONFIG_ENDPOINT "<endpoint-of-your-app-configuration-store>"
    

    変更を有効にするために、コマンド プロンプトを再起動します。 この環境変数の値を出力して、正しく設定されていることを確認します。

  8. Maven を使用して Spring Boot アプリケーションをビルドして実行します。

    mvn clean package
    mvn spring-boot:run
    
  9. App Configuration ポータルで [機能マネージャー] を選択し、[有効化] 列のトグルを使用して、Beta 機能フラグの状態をオンに変更します。

    状態
    ベータ On
  10. アプリケーションを再起動します アプリケーションによって次の内容が出力されます。

    Beta is enabled: true
    

リソースをクリーンアップする

この記事で作成したリソースを継続して使用しない場合は、ここで作成したリソース グループを削除して課金されないようにしてください。

重要

リソース グループを削除すると、元に戻すことができません。 リソース グループとそのすべてのリソースは完全に削除されます。 間違ったリソース グループやリソースをうっかり削除しないようにしてください。 この記事のリソースを、保持したい他のリソースを含むリソース グループ内に作成した場合は、リソース グループを削除する代わりに、各リソースをそれぞれのペインから個別に削除します。

  1. Azure portal にサインインし、[リソース グループ] を選択します。
  2. [名前でフィルター] ボックスにリソース グループの名前を入力します。
  3. 結果一覧でリソース グループ名を選択し、概要を表示します。
  4. [リソース グループの削除] を選択します。
  5. リソース グループの削除の確認を求めるメッセージが表示されます。 確認のためにリソース グループの名前を入力し、[削除] を選択します。

しばらくすると、リソース グループとそのすべてのリソースが削除されます。

次のステップ

このクイック スタートでは、新しい App Configuration ストアを作成し、それを使用して 機能管理ライブラリを使用して Spring Boot アプリの機能を管理しました。