演習 - Azure App Service に Web アプリをデプロイする
このユニットでは、Java Tomcat Web アプリを Azure App Service にデプロイします。
Azure App Service 用の Maven プラグイン
Java 開発者が Azure にアプリケーションを簡単にデプロイできるように、Microsoft は Maven Plugin for Azure App Service を用意しています。 このプラグインを使用すると、アプリケーションを簡単に構成して Azure にデプロイできます。 プラグインの構成、ソース コードのコンパイル、アプリのデプロイを行うには、次のセクションの手順に従います。
Azure App Service 用の Maven プラグインを構成する
Azure App Service 用の Maven プラグインを構成するには、次の手順に従います。
次のコマンドを使用して、構成を開始します。
mvn com.microsoft.azure:azure-webapp-maven-plugin:2.10.0:config
コマンドを使用すると、プロンプトにいくつかの質問が表示され、さまざまなオプションを構成できます。 次の表の情報に従って、オプションと値を構成します。
項目 入力値 サブスクリプション Azure サブスクリプションを選択します。 OS の値を定義する Linux Define value for pricing tier (価格レベルの値を定義する) B1 Define value for Java Version (Java バージョンの値を定義する) Java 21 ランタイム スタックの値を定義する TOMCAT 10.0 確認 (Y/N) Y オプションを構成した後、次の出力が一般的になります。
mvn com.microsoft.azure:azure-webapp-maven-plugin:2.10.0:config [INFO] Scanning for projects... [INFO] [INFO] -------------------< com.example:simple-tomcat-app >-------------------- [INFO] Building simple-tomcat-app 1.0-SNAPSHOT [INFO] from pom.xml [INFO] --------------------------------[ war ]--------------------------------- [INFO] [INFO] --- azure-webapp:2.10.0:config (default-cli) @ simple-tomcat-app --- Downloading from central: https://repo.maven.apache.org/maven2/net/minidev/json-smart/maven-metadata.xml Downloading from ossrh: https://oss.sonatype.org/content/repositories/snapshots/net/minidev/json-smart/maven-metadata.xml Downloading from shibboleth-repo: https://build.shibboleth.net/nexus/content/repositories/releases/net/minidev/json-smart/maven-metadata.xml Downloaded from central: https://repo.maven.apache.org/maven2/net/minidev/json-smart/maven-metadata.xml (1.3 kB at 6.3 kB/s) Please choose which part to config [Application]: * 1: Application 2: Runtime 3: DeploymentSlot Enter your choice: 1 Define value for appName [simple-tomcat-app]: tomcatmavendemo Define value for resourceGroup [tomcatmavendemo-rg]: MyResourceGroup Define value for region [{azure.region}]: centralus Define value for pricingTier [B1]: * 1: B1 2: B2 3: B3 4: D1 5: EP1 6: EP2 7: EP3 8: F1 9: P1v2 10: P1v3 11: P2v2 12: P2v3 13: P3v2 14: P3v3 15: S1 16: S2 17: S3 18: Y1 Enter your choice: 1 Please confirm webapp properties AppName : tomcatmavendemo ResourceGroup : MyResourceGroup Region : centralus PricingTier : B1 OS : Linux Java Version: 21 Web server stack: Tomcat 10.1 Deploy to slot : false Confirm (Y/N) [Y]: Y [INFO] Saving configuration to pom. [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESS [INFO] ------------------------------------------------------------------------ [INFO] Total time: 01:49 min [INFO] Finished at: 2024-11-07T09:54:55-08:00 [INFO] ------------------------------------------------------------------------
pom.xml ファイルに、
<plugins>
セクションに新しいセクションが含まれるようになりました。 リソース グループ名、インスタンス名、またはデプロイの場所を変更する場合は、<resourceGroup>
、<appName>
、または<region>
要素の値を変更します。 次の例では、一般的な pom.xml ファイルを示します。<!-- Azure Web App Maven Plugin --> <plugin> <groupId>com.microsoft.azure</groupId> <artifactId>azure-webapp-maven-plugin</artifactId> <version>2.10.0</version> <configuration> <resourceGroup>MyResourceGroup</resourceGroup> <appName>tomcatmavendemo</appName> <region>centralus</region> <pricingTier>B1</pricingTier> <runtime> <os>linux</os> <javaVersion>21</javaVersion> <webContainer>Tomcat 10.1</webContainer> </runtime> <deployment> <resources> <resource> <directory>${project.build.directory}</directory> <includes> <include>*.war</include> </includes> </resource> </resources> </deployment> </configuration> </plugin>
コンパイルして Azure App Service にデプロイする
Azure App Service にデプロイするための設定の構成が完了したら、次の手順に従ってソース コードをコンパイルし、アプリを Azure App Services にデプロイします。
次のコマンドを使用して、ソース コードをもう一度コンパイルします。
mvn clean package
ソース コードがコンパイルされたら、次のコマンドを使用してアプリケーションをデプロイします。
mvn azure-webapp:deploy
デプロイが完了すると、次の出力が一般的になります。
[INFO] Successfully deployed the artifact to https://tomcatmavendemo.azurewebsites.net
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 06:55 min
[INFO] Finished at: 2024-11-07T10:05:19-08:00
[INFO] ------------------------------------------------------------------------
ご覧のとおり、その出力には、デプロイされたアプリケーションのパブリック URL ( Successfully deployed the artifact to https://tomcatmavendemo.azurewebsites.net
) が提供されます。
アプリケーションに移動すると、次のスクリーンショットのようになります。
ログ ストリームを確認する
ログ ストリームにアクセスするには、次のコマンドを使用します。
az webapp log tail \
--resource-group <your-resource-group> \
--name <your-app-name>
次の出力が一般的です。
2024-11-07T18:14:37 Welcome, you are now connected to log-streaming service.
Starting Log Tail -n 10 of existing logs ----
/appsvctmp/volatile/logs/runtime/container.log
2024-11-07T18:06:05.3874260Z java.base/java.lang.Thread.run(Thread.java:1583)
2024-11-07T18:06:05.5635356Z Nov 07, 2024 6:06:05 PM org.apache.coyote.AbstractProtocol stop
2024-11-07T18:06:05.5636042Z INFO: Stopping ProtocolHandler ["http-nio-127.0.0.1-80"]
2024-11-07T18:06:05.6020767Z Nov 07, 2024 6:06:05 PM org.apache.coyote.AbstractProtocol stop
2024-11-07T18:06:05.6021438Z INFO: Stopping ProtocolHandler ["http-nio-169.254.129.3-80"]
2024-11-07T18:06:05.6423756Z Nov 07, 2024 6:06:05 PM org.apache.coyote.AbstractProtocol destroy
2024-11-07T18:06:05.6424403Z INFO: Destroying ProtocolHandler ["http-nio-127.0.0.1-80"]
2024-11-07T18:06:05.6893602Z Nov 07, 2024 6:06:05 PM org.apache.coyote.AbstractProtocol destroy
2024-11-07T18:06:05.6894311Z INFO: Destroying ProtocolHandler ["http-nio-169.254.129.3-80"]
2024-11-07T18:06:05.7849816Z Done processing signal SIGTERM. Exiting now!
Ending Log Tail of existing logs ---
Starting Live Log Stream ---
演習の概要
このユニットでは、Maven を使用して Tomcat Web アプリを作成する方法について説明しました。 また、サーブレットを作成する方法と、そのしくみについても学習しました。 次に、Tomcat を使用して Web アプリをローカルにデプロイしました。 最後に、世界中のすべてのユーザーがアクセスできるように Azure App Service にデプロイしました。