Spring Boot アプリを Azure にデプロイ

アプリケーションの段階的な実行を詳しく調べる前に、Azure にデプロイボタンをクリックするだけです。これにより、アプリが Azure Spring アプリに即座にデプロイされます。

Azure Spring アプリへのデプロイ

従量課金プラン

deploytoazurebutton

ベーシック / スタンダードプラン

deploytoazurebutton

エンタープライズプラン

deploytoazurebutton

この記事では、Spring Boot アプリケーションを Azure Spring アプリ (英語) にデプロイする手順について説明します。

同じタスクの最新の手順については、Azure Spring Apps クイックスタートドキュメント (英語) を確認することをお勧めします。

構築するもの

GitHub からサンプル Spring Boot アプリケーションのクローンを作成し、Maven を使用してそれを Azure Spring アプリにデプロイします。

必要なもの

この記事の手順を実行するには、次の前提条件が必要です。

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

このセクションでは、Spring Boot アプリケーションを複製し、ローカルでテストします。

  1. ターミナルウィンドウを開きます。

  2. mkdir SpringBoot と入力して、Spring Boot アプリケーションを保持するローカルディレクトリを作成します。

  3. cd SpringBoot と入力して、そのディレクトリに移動します。

  4. git clone https://github.com/spring-guides/gs-spring-boot-for-azure (英語) と入力して、作成したディレクトリに Spring Boot アプリを Azure にデプロイ [GitHub] (英語) サンプルプロジェクトを複製します。

  5. cd gs-spring-boot-for-azure/complete と入力して、完成したプロジェクトのディレクトリに移動します

  6. ./mvnw clean package と入力して、Maven を使用して JAR ファイルをビルドします。

  7. Web アプリが作成されたら、./mvnw spring-boot:run と入力して起動します

  8. http://localhost:8080 にアクセスするか、別のターミナルウィンドウから curl http://localhost:8080 を入力して、ローカルでテストします。

  9. 次のメッセージが表示されるはずです: Hello World

アプリを構成して Azure Spring アプリにデプロイする

Azure Spring Apps インスタンスをプロビジョニングする

  1. Web ブラウザーで Azure ポータル (英語) を開き、アカウントにサインインします。

  2. Azure Spring Apps を検索し、Azure Spring Apps を選択します。

  3. 概要ページで 作成 を選択し、次の操作を行います。

    1. サービス名 ボックスに、サービスインスタンスの名前を指定します。名前の長さは 4 ~ 32 文字である必要があり、小文字、数字、ハイフンのみを含めることができます。サービス名の最初の文字は文字にする必要があり、最後の文字は文字または数字にする必要があります。

    2. サブスクリプションドロップダウンリストで、このリソースに対して請求するサブスクリプションを選択します。

    3. リソースグループボックスで、新しいリソースグループを作成します。新しいリソースのリソースグループを作成することは、ベストプラクティスです。

    4. 場所 ドロップダウンリストで、サービスインスタンスの場所を選択します。

  4. サービスがデプロイされるまでに約 5 分かかります。

デプロイの設定を追加

  1. 次のコマンドで、Azure Spring アプリ用の Maven プラグイン [GitHub] (英語) を使用して Web アプリを構成します。

    export MAVEN_OPTS="--add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.io=ALL-UNNAMED"
    ./mvnw com.microsoft.azure:azure-spring-apps-maven-plugin:1.18.0:config -DadvancedOptions
    • コマンド説明:

      • export MAVEN_OPTS="--add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.io=ALL-UNNAMED" は、azure-maven-plugins#2222 [GitHub] (英語) で追跡されている課題を回避するために使用されます。

      • この maven ゴールは最初に Azure で認証され、Azure CLI でログインしている場合は、既存の認証トークンが消費されます。それ以外の場合は、azure-maven-plugin [GitHub] (英語) を使用して自動的にログインします。

    • 必要な情報を入力してください:

      • サブスクリプションを選択: 作成した Azure Spring アプリをホストするサブスクリプションを選択します。

      • デプロイの Azure Spring アプリの選択: 作成した Azure Spring アプリを選択します。

      • 入力ランタイム Java バージョン (Java 11): Java 17

      • このアプリの boot-for-azure のパブリックアクセスを公開しますか ? (y/N): はい

      • その他のオプションについては、デフォルト値を選択してください。

    • ターミナル出力の例を次に示します。

      ~@Azure:~/gs-spring-boot/complete$ ./mvnw com.microsoft.azure:azure-spring-apps-maven-plugin:1.14.0:config -DadvancedOptions
      [INFO] Scanning for projects...
      [INFO]
      [INFO] ------------------------------------------------------------------------
      [INFO] Building boot-for-azure 0.0.1-SNAPSHOT
      [INFO] ------------------------------------------------------------------------
      [INFO]
      [INFO] --- azure-spring-apps-maven-plugin:1.14.0:config (default-cli) @ demo ---
      ...
      Available subscription:
       1. xxx
      ...
      Select subscription [1-105] (20):
      ...
      Available Azure Spring Apps:
       1. xxx
      ...
      Select Azure Spring Apps for deployment: [1-28] (1): 1
      [INFO] Using Azure Spring Apps: xxx
      Input the app name (demo):
      Expose public access for this app boot-for-azure? (y/N):y
      Summary of properties:
      Subscription id   : xxx
      Resource group name : xxx
      Azure Spring Apps name : xxx
      App name          : demo
      Public access     : yes
      Instance count    : 1
      CPU count         : 1
      Memory size(GB)   : 1
      Runtime Java version : Java 17
      Confirm to save all the above configurations (Y/n):Y
  2. 必要に応じて、pom.xml を開いて、新しく追加されたコンテンツを表示します。

    <plugin>
        <groupId>com.microsoft.azure</groupId>
        <artifactId>azure-spring-apps-maven-plugin</artifactId>
        <version>1.14.0</version>
        <configuration>
            <subscriptionId>xxx</subscriptionId>
            <resourceGroup>xxx</resourceGroup>
            <clusterName>xxx</clusterName>
            <appName>demo</appName>
            <isPublic>true</isPublic>
            <deployment>
                <cpu>1</cpu>
                <memoryInGB>1</memoryInGB>
                <instanceCount>1</instanceCount>
                <runtimeVersion>Java 17</runtimeVersion>
                <resources>
                    <resource>
                        <filtering/>
                        <mergeId/>
                        <targetPath/>
                        <directory>${project.basedir}/target</directory>
                        <includes>
                            <include>*.jar</include>
                        </includes>
                    </resource>
                </resources>
            </deployment>
        </configuration>
    </plugin>

アプリをデプロイする

  1. 次のコマンドを実行して、アプリをデプロイします。

    ./mvnw azure-spring-apps:deploy
  2. デプロイには数分かかる場合があります。デプロイが完了すると、出力に URL が表示されます。Web ブラウザーで URL に移動します。Hello World というメッセージが表示されます。

要約

おめでとう! Spring Boot アプリをビルドして Azure Spring アプリにデプロイしました。Azure ポータル (英語) にアクセスして管理できます。

不要になった場合は、作成された Azure リソースを削除することを忘れないでください。

AZD で実行

Azure 開発者 CLI (アズド) (英語) を使用して、このアプリケーションを Azure Spring アプリですばやく実行することもできます。Azure 開発者 CLI は、アプリケーションをローカル開発環境から Azure に移行する時間を短縮するオープンソースツールです。

azd で実行する方法については、最初のアプリケーションを Azure Spring アプリにデプロイする (英語) を参照してください。

関連事項

Spring を Azure とともに使用することに関する追加情報は、以下で入手できます。

新しいガイドを作成したり、既存のガイドに貢献したいですか? 投稿ガイドラインを参照してください [GitHub] (英語)

すべてのガイドは、コード用の ASLv2 ライセンス、およびドキュメント用の Attribution、NoDerivatives creative commons ライセンス (英語) でリリースされています。

コードを入手する