Azure Spring Cloud で Java Spring アプリケーションをデプロイ用に準備するPrepare a Java Spring application for deployment in Azure Spring Cloud

このクイックスタートでは、既存の Java Spring Cloud アプリケーションを Azure Spring Cloud へのデプロイ用に準備する方法について説明します。This quickstart shows how to prepare an existing Java Spring Cloud application for deployment to Azure Spring Cloud. 適切に構成すると、Azure Spring Cloud によって Java Spring Cloud アプリケーションの監視、スケーリング、更新を行う堅牢なサービスが実現します。If configured properly, Azure Spring Cloud provides robust services to monitor, scale, and update your Java Spring Cloud application.

Java ランタイム バージョンJava Runtime version

Azure Spring Cloud で稼働できるのは、Spring または Java アプリケーションのみです。Only Spring/Java applications can run in Azure Spring Cloud.

Azure Spring Cloud は、Java 8 と Java 11 の両方をサポートしています。Azure Spring Cloud supports both Java 8 and Java 11. ホスティング環境には最新バージョンの Azure 用 Azul Zulu OpenJDK が含まれます。The hosting environment contains the latest version of Azul Zulu OpenJDK for Azure. Azure 用 Azul Zulu OpenJDK の詳細については、JDK のインストールに関するページを参照してください。For more information about Azul Zulu OpenJDK for Azure, see Install the JDK.

Spring Boot と Spring Cloud のバージョンSpring Boot and Spring Cloud versions

Azure Spring Cloud では、Spring Boot アプリのみがサポートされています。Azure Spring Cloud supports only Spring Boot apps. Spring Boot バージョン 2.0 とバージョン 2.1 の両方がサポートされています。It supports both Spring Boot version 2.0 and version 2.1. サポートされている Spring Boot と Spring Cloud の組み合わせを次の表に示します。The following table lists the supported Spring Boot and Spring Cloud combinations:

Spring Boot のバージョンSpring Boot version Spring Cloud のバージョンSpring Cloud version
2.02.0 Finchley.RELEASEFinchley.RELEASE
2.12.1 Greenwich.RELEASEGreenwich.RELEASE

お使いの Spring Boot バージョンに基づいて正しい Spring Boot および Spring Cloud の依存関係が pom.xml ファイルにあることを確認します。Verify that your pom.xml file has the correct Spring Boot and Spring Cloud dependencies based on your Spring Boot version.

Spring Boot バージョン 2.0 の依存関係Dependencies for Spring Boot version 2.0

    <!-- Spring Boot dependencies -->
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.0.9.RELEASE</version>
    </parent>

    <!-- Spring Cloud dependencies -->
    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>Finchley.SR4</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>

Spring Boot バージョン 2.1 の依存関係Dependencies for Spring Boot version 2.1

    <!-- Spring Boot dependencies -->
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.1.8.RELEASE</version>
    </parent>

    <!-- Spring Cloud dependencies -->
    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>Greenwich.SR3</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>

Azure Spring Cloud クライアントの依存関係Azure Spring Cloud client dependency

Spring Cloud のコンポーネントは、Azure Spring Cloud によって自動的にホストおよび管理されます。Azure Spring Cloud hosts and manages Spring Cloud components for you. たとえば、Spring Cloud Service Registry や Spring Cloud Config Server などのコンポーネントです。Such components include Spring Cloud Service Registry and Spring Cloud Config Server. 自分の Azure Spring Cloud サービス インスタンスと通信できるよう、Azure Spring Cloud クライアント ライブラリを依存関係に含めます。Include the Azure Spring Cloud client library in your dependencies to allow communication with your Azure Spring Cloud service instance.

Spring Boot と Spring Cloud を使用するアプリの正しい Azure Spring Cloud バージョンを次の表に示します。The following table lists the correct Azure Spring Cloud versions for your app that uses Spring Boot and Spring Cloud.

Spring Boot のバージョンSpring Boot version Spring Cloud のバージョンSpring Cloud version Azure Spring Cloud のバージョンAzure Spring Cloud version
2.02.0 Finchley.RELEASEFinchley.RELEASE 2.02.0
2.12.1 Greenwich.RELEASEGreenwich.RELEASE 2.12.1

次のいずれかの依存関係を pom.xml ファイルに含めます。Include one of the following dependencies in your pom.xml file. Azure Spring Cloud バージョンがお使いのものと一致する依存関係を選択します。Select the dependency whose Azure Spring Cloud version matches your own.

Azure Spring Cloud バージョン 2.0 の依存関係Dependency for Azure Spring Cloud version 2.0

<dependency>
        <groupId>com.microsoft.azure</groupId>
        <artifactId>spring-cloud-starter-azure-spring-cloud-client</artifactId>
        <version>2.0.0</version>
</dependency>

Azure Spring Cloud バージョン 2.1 の依存関係Dependency for Azure Spring Cloud version 2.1

<dependency>
        <groupId>com.microsoft.azure</groupId>
        <artifactId>spring-cloud-starter-azure-spring-cloud-client</artifactId>
        <version>2.1.0</version>
</dependency>

その他の必要な依存関係Other required dependencies

Azure Spring Cloud の組み込み機能を有効にするには、アプリケーションに次の依存関係が含まれている必要があります。To enable the built-in features of Azure Spring Cloud, your application must include the following dependencies. これにより、アプリケーションが各コンポーネントと共に正しく構成されます。This inclusion ensures that your application configures itself correctly with each component.

サービス レジストリの依存関係Service Registry dependency

マネージド Azure Service Registry サービスを使用するには、次に示すように、pom.xml ファイルに spring-cloud-starter-netflix-eureka-client 依存関係を含めます。To use the managed Azure Service Registry service, include the spring-cloud-starter-netflix-eureka-client dependency in the pom.xml file as shown here:

    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
    </dependency>

サービス レジストリ サーバーのエンドポイントは、アプリで環境変数として自動的に挿入されます。The endpoint of the Service Registry server is automatically injected as environment variables with your app. その後、アプリケーションによって、アプリケーション自体がサービス レジストリ サーバーに登録され、他の依存マイクロサービスが検出されます。Applications can register themselves with the Service Registry server and discover other dependent microservices.

分散構成の依存関係Distributed Configuration dependency

分散構成を有効にするには、pom.xml ファイルの依存関係セクションに次の spring-cloud-config-client の依存関係を含めます。To enable Distributed Configuration, include the following spring-cloud-config-client dependency in the dependencies section of your pom.xml file:

<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-config-client</artifactId>
</dependency>

警告

ブートストラップ構成で spring.cloud.config.enabled=false を指定しないでください。Don't specify spring.cloud.config.enabled=false in your bootstrap configuration. そうしないと、アプリケーションと Config Server の連携が停止します。Otherwise, your application stops working with Config Server.

メトリックの依存関係Metrics dependency

次に示すように、pom.xml ファイルの依存関係セクションに spring-boot-starter-actuator の依存関係を含めます。Include the spring-boot-starter-actuator dependency in the dependencies section of your pom.xml file as shown here:

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-actuator</artifactId>
</dependency>

メトリックは JMX エンドポイントから定期的に取得されます。Metrics are periodically pulled from the JMX endpoints. メトリックを視覚化するには、Azure portal を使用します。You can visualize the metrics by using the Azure portal.

分散トレースの依存関係Distributed Tracing dependency

pom.xml ファイルの依存関係セクションに次の spring-cloud-starter-sleuth および spring-cloud-starter-zipkin の依存関係を含めます。Include the following spring-cloud-starter-sleuth and spring-cloud-starter-zipkin dependencies in the dependencies section of your pom.xml file:

<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-sleuth</artifactId>
</dependency>
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-zipkin</artifactId>
</dependency>

さらに、自分の Azure Spring Cloud サービス インスタンスと連携できるよう、Azure Application Insights インスタンスを有効にする必要があります。You also need to enable an Azure Application Insights instance to work with your Azure Spring Cloud service instance. Application Insights と Azure Spring Cloud を使用する方法については、分散トレースに関するチュートリアルを参照してください。Read the tutorial on distributed tracing to learn how to use Application Insights with Azure Spring Cloud.

次のステップNext steps

このチュートリアルでは、Java Spring Cloud アプリケーションを Azure Spring Cloud へのデプロイ用に構成する方法について学習しました。In this tutorial, you learned how to configure your Java Spring application for deployment to Azure Spring Cloud. Config Server インスタンスを設定する方法については、次のチュートリアルに進んでください。To learn how to set up a Config Server instance, continue to the next tutorial.

その他のサンプルを GitHub で入手できます (Azure Spring Cloud のサンプル)。More samples are available on GitHub: Azure Spring Cloud Samples.