次の方法で共有


クイック スタート:Azure App Configuration を使用して Java Spring アプリを作成する

このクイック スタートでは、コードとは別にアプリケーション設定のストレージと管理を一元化するために、Azure App Configuration を Java Spring アプリに組み込みます。

前提条件

  • アクティブなサブスクリプションが含まれる Azure アカウント。 無料で作成できます
  • App Configuration ストア。 ストアを作成します。
  • バージョン 11 を含む、サポートされている Java Development Kit (JDK)
  • Apache Maven バージョン 3.0 以降。
  • Spring Boot アプリケーション。 ない場合は、Spring Initializr で Maven プロジェクトを作成します。 必ず、[Maven プロジェクト] を選択し、[依存関係][Spring Web] 依存関係を追加してから、Java のバージョン 8 以降を選択してください。

キーと値を追加する

App Configuration ストアに次のキーと値を追加し、[ラベル][コンテンツのタイプ] を既定値のままにします。 Azure portal または CLI を使用してストアにキーと値を追加する方法の詳細については、キーと値の作成に関する記事を参照してください。

キー
/application/config.message こんにちは

App Configuration ストアに接続する

App Configuration ストアが作成されたので、Spring Cloud Azure Config スターターを使用して、作成した App Configuration ストアとアプリケーションが通信できるようにすることができます。

Spring Cloud Azure Config スターター モジュールをインストールするには、次の依存関係を pom.xml ファイルに追加します。

<dependency>
    <groupId>com.azure.spring</groupId>
    <artifactId>spring-cloud-azure-appconfiguration-config-web</artifactId>
</dependency>

<dependencyManagement>
    <dependencies>
        <dependency>
        <groupId>com.azure.spring</groupId>
        <artifactId>spring-cloud-azure-dependencies</artifactId>
        <version>5.18.0</version>
        <type>pom</type>
        <scope>import</scope>
        </dependency>
    </dependencies>
</dependencyManagement>

アプリケーションをコーディングする

Spring Cloud Azure Config スターターを使用して、作成した App Configuration ストアとアプリケーションが通信できるようにするには、次の手順に従ってアプリケーションを構成します。

  1. MyProperties.java という名前の新しい Java ファイルを作成し、次の行を追加します。

    import org.springframework.boot.context.properties.ConfigurationProperties;
    
    @ConfigurationProperties(prefix = "config")
    public class MyProperties {
        private String message;
    
        public String getMessage() {
            return message;
        }
    
        public void setMessage(String message) {
            this.message = message;
        }
    }
    
  2. HelloController.java という名前の新しい Java ファイルを作成し、次の行を追加します。

    import org.springframework.web.bind.annotation.GetMapping;
    import org.springframework.web.bind.annotation.RestController;
    
    @RestController
    public class HelloController {
        private final MyProperties properties;
    
        public HelloController(MyProperties properties) {
            this.properties = properties;
        }
    
        @GetMapping
        public String getMessage() {
            return "Message: " + properties.getMessage();
        }
    }
    
  3. メイン アプリケーションの Java ファイルで、@EnableConfigurationProperties を追加して、MyProperties.java 構成プロパティ クラスが有効になるようにし、それを Spring コンテナーに登録します。

    import org.springframework.boot.context.properties.EnableConfigurationProperties;
    
    @SpringBootApplication
    @EnableConfigurationProperties(MyProperties.class)
    public class DemoApplication {
        public static void main(String[] args) {
            SpringApplication.run(DemoApplication.class, args);
        }
    }
    
  4. DefaultAzureCredential を使って、App Configuration ストアに対する認証を行います。 手順に従って、資格情報に App Configuration データ閲覧者ロールを割り当てます。 アプリケーションを実行する前に、アクセス許可が伝わるのに十分な時間をおいてください。 AppConfigCredential.java という名前の新しいファイルを作成して、次の行を追加します。

    import org.springframework.stereotype.Component;
    
    import com.azure.data.appconfiguration.ConfigurationClientBuilder;
    import com.azure.identity.DefaultAzureCredentialBuilder;
    import com.azure.spring.cloud.appconfiguration.config.ConfigurationClientCustomizer;
    
    @Component
    public class AppConfigCredential implements ConfigurationClientCustomizer {
    
        @Override
        public void customize(ConfigurationClientBuilder builder, String endpoint) {
            builder.credential(new DefaultAzureCredentialBuilder().build());
        }
    }
    
  5. 次に、resources/META-INF ディレクトリに spring.factories ファイルを作成して、次の行を追加し、com.example.MyApplication を実際のアプリケーション名とパッケージで更新して、構成 BootstrapConfiguration を作成します。

    org.springframework.cloud.bootstrap.BootstrapConfiguration=\
    com.example.MyApplication
    
  6. 自動生成された単体テストを開き、Azure App Configuration を無効にするように更新します。そうしないと、単体テストの実行時にサービスからの読み込みが試行されます。

    import org.junit.jupiter.api.Test;
    import org.springframework.boot.test.context.SpringBootTest;
    
    @SpringBootTest(properties = "spring.cloud.azure.appconfiguration.enabled=false")
    class DemoApplicationTests {
    
        @Test
        void contextLoads() {
        }
    
    }
    
  7. アプリの resources ディレクトリに、bootstrap.properties という名前の新しいファイルを作成し、そのファイルに以下の行を追加します。

    spring.cloud.azure.appconfiguration.stores[0].endpoint= ${APP_CONFIGURATION_ENDPOINT}
    
  8. APP_CONFIGURATION_ENDPOINT という名前の環境変数を、App Configuration ストアへのアクセス キーに設定します。 コマンド ラインで次のコマンドを実行してコマンド プロンプトを再起動し、変更が反映されるようにします。

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

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

    $Env:APP_CONFIGURATION_ENDPOINT = "<endpoint-of-your-app-configuration-store>"
    

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

    export APP_CONFIGURATION_ENDPOINT='<endpoint-of-your-app-configuration-store>'
    

アプリをビルドしてローカルで実行する

  1. ルート ディレクトリに対するコマンド プロンプトを開き、次のコマンドを実行して、Maven を使用して Spring Boot アプリケーションをビルドし、実行します。

    mvn clean package
    mvn spring-boot:run
    
  2. アプリケーションが実行されたら、curl を使用してアプリケーションをテストできます。次に例を示します。

    curl -X GET http://localhost:8080/
    

    App Configuration ストアに入力したメッセージが表示されます。

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

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

重要

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

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

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

次のステップ

このクイックスタートでは、新しい App Configuration ストアを作成して、Java Spring アプリで使用しました。 詳細については、「Azure の Spring」を参照してください。 その他の質問については、リファレンス ドキュメントを参照してください。Spring Cloud Azure App Configuration ライブラリのしくみに関する詳細がすべて記載されています。 Java Spring アプリで構成設定を動的に更新できるようにする方法については、次のチュートリアルに進んでください。