演習 - 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 にデプロイしました。