サンプル Java アプリのデプロイ
このユニットでは、Maven を通してデプロイされるように Spring Boot アプリケーションを構成します。 次に、アプリケーションを Azure App Service インスタンスにデプロイします。 このユニットでは、ペット クリニックの例を示します。
サンプル アプリケーション
お気に入りのコマンドライン ツールでクローンします。
git clone https://github.com/spring-projects/spring-petclinic.git
その後、ローカルで実行します。
cd spring-petclinic
./mvnw package
java -jar target/*.jar
ブラウザーで例を開くと、次のようになります。
サンプル アプリケーションをクラウド対応に向けて準備する
src フォルダーには、オブジェクト、コントローラー、およびリポジトリのクラスがあります。
Java はプラットフォームに依存しないため、OS を自由に選択できますが、デプロイには Java バージョンが重要です。 Java バージョンは pom.xml ファイルで確認できます。
<properties>
<java.version>17</java.version>
</properties>
この例では Java 8 を使用しているため、Azure App Service インスタンスでも、Linux か Windows かにかかわらず、Java 8 を使用する必要があります。 プラットフォームは重要ではないため、この例では Linux を使用します。
いくつかの Azure の依存関係を pom.xml ファイルに追加する必要があります。 次のコマンドを実行すると、依存関係の追加が自動的に行われます。
mvn com.microsoft.azure:azure-webapp-maven-plugin:2.11.1:config
そのコマンドの出力で、いくつかのオプションを指定するように求められます。 これらのオプションは、pom.xml に自動的に格納されます。
Please choose which part to config:
* 1: Application
2: Runtime
3: DeploymentSlot
Enter your choice: 1
Define value for appName [spring-petclinic-XXXX200]:
Define value for resourceGroup [spring-petclinic-XXXX200-rg]:
Define value for region [westeurope]:
Define value for pricingTier(P1v2):
1: b1
2: b2
3: b3
4: d1
5: f1
* 6: p1v2
7: p2v2
8: p3v2
9: s1
10: s2
11: s3
Enter your choice: 1
Please confirm webapp properties
AppName : spring-petclinic-XXXX200
ResourceGroup : spring-petclinic-XXXX200-rg
Region : westeurope
PricingTier : Basic_B2
OS : Linux
RuntimeStack : JAVA 8-jre8
Deploy to slot : false
Confirm (Y/N) [Y]: y
[INFO] Saving configuration to pom.
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
ご覧のとおり、シンプルなデプロイには既定値を使用できます。
これで pom.xml ファイルには、Azure への Maven ベースの自動デプロイに必要なプラグインが追加されました。
<plugin>
<groupId>com.microsoft.azure</groupId>
<artifactId>azure-webapp-maven-plugin</artifactId>
<version>2.11.1</version>
<configuration>
<schemaVersion>V2</schemaVersion>
<subscriptionId>XXX-XXX-XXX</subscriptionId>
<resourceGroup>spring-petclinic-XXX200-rg</resourceGroup>
<appName>spring-petclinic-XXX200</appName>
<pricingTier>B2</pricingTier>
<region>westeurope</region>
<runtime>
<os>linux</os>
<javaVersion>jre8</javaVersion>
<webContainer>jre8</webContainer>
</runtime>
<deployment>
<resources>
<resource>
<directory>${project.basedir}/target</directory>
<includes>
<include>*.jar</include>
</includes>
</resource>
</resources>
</deployment>
</configuration>
</plugin>
Maven を使用してアプリケーションをデプロイする
Azure App Service へのデプロイの準備は既にできています。
mvn package com.microsoft.azure:azure-webapp-maven-plugin:1.12.0:deploy
このコマンドを使用すると、テストが実行されます。 次に、Azure App Service インスタンスが自動的に起動され、パッケージ化されたアプリケーションがデプロイされます。
お疲れさまでした。 アプリは Azure App Service に正常にデプロイされました。