クイック スタート:Azure App Service で Java アプリを作成する
このクイックスタートでは、Maven Plugin for Azure App Service Web Apps を使用して、Java Web アプリを Azure App Service 内の Linux Tomcat サーバーにデプロイします。 App Service は、高度にスケーラブルで、パッチを自己適用する Web アプリ ホスティング サービスを提供します。 タブを使用して、Tomcat、JBoss、埋め込みサーバー (Java SE) の手順間の切り替えを行います。
Maven が好みの開発ツールでない場合は、Java 開発者向けの同様のチュートリアルを確認してください。
Azure サブスクリプションをお持ちでない場合は、開始する前に Azure 無料アカウントを作成してください。
1 - Azure Cloud Shell を使用する
Azure では、ブラウザーを介して使用できる対話型のシェル環境、Azure Cloud Shell がホストされています。 Cloud Shell で Bash または PowerShell を使用して、Azure サービスを操作できます。 ローカル環境に何もインストールしなくても、Cloud Shell にプレインストールされているコマンドを使用して、この記事のコードを実行できます。
Azure Cloud Shell を開始するには、以下のようにします。
オプション | 例とリンク |
---|---|
コードまたはコマンド ブロックの右上隅にある [使ってみる] を選択します。 [使ってみる] を選択しても、コードまたはコマンドは Cloud Shell に自動的にはコピーされません。 | |
https://shell.azure.com に移動するか、[Cloud Shell を起動する] ボタンを選択して、ブラウザーで Cloud Shell を開きます。 | |
Azure portal の右上にあるメニュー バーの [Cloud Shell] ボタンを選択します。 |
Azure Cloud Shell を使用するには、以下のようにします。
Cloud Shell を開始します。
コード ブロック (またはコマンド ブロック) の [コピー] ボタンを選択し、コードまたはコマンドをコピーします。
Windows と Linux では Ctrl+Shift+V キーを選択し、macOS では Cmd+Shift+V キーを選択して、コードまたはコマンドを Cloud Shell セッションに貼り付けます。
Enter キーを選択して、コードまたはコマンドを実行します。
2 - Java アプリを作成する
Cloud Shell プロンプトで次の Maven コマンドを実行して、helloworld
という名前の新しいアプリを作成します。
mvn archetype:generate "-DgroupId=example.demo" "-DartifactId=helloworld" "-DarchetypeArtifactId=maven-archetype-webapp" "-DarchetypeVersion=1.4" "-Dversion=1.0-SNAPSHOT"
次に、作業ディレクトリをプロジェクト フォルダーに変更します。
cd helloworld
3 - Maven プラグインを構成する
Azure App Service へのデプロイ プロセスでは、Azure CLI から Azure 資格情報が自動的に使用されます。 Azure CLI がローカルにインストールされていない場合、Maven プラグインは OAuth またはデバイス ログインを使用して認証します。 詳細については、Maven プラグインによる認証に関するページを参照してください。
次に示す Maven コマンドを実行して、デプロイを構成します。 このコマンドは、App Service オペレーティング システム、Java バージョン、および Tomcat バージョンを設定するのに役立ちます。
mvn com.microsoft.azure:azure-webapp-maven-plugin:2.13.0:config
[新しい実行構成の作成] では、「Y」と入力してから、Enter キーを押します。
[OS の値を定義] では、Windows の場合は「1」、Linux の場合は「2」と入力してから、Enter キーを押します。
[javaVersion の値を定義] では、Java 17 用に「1」と入力してから、Enter キーを押します。
[webContainer の値を定義] では、Tomcat 10.0 用に「1」と入力してから、Enter キーを押します。
[pricingTier の値を定義] では、P1v2 用に「3」と入力してから、Enter キーを押します。
[確認] では、「Y」と入力してから、Enter キーを押します。
Please confirm webapp properties AppName : helloworld-1690440759246 ResourceGroup : helloworld-1690440759246-rg Region : centralus PricingTier : P1v2 OS : Linux Java Version: Java 17 Web server stack: Tomcat 10.0 Deploy to slot : false Confirm (Y/N) [Y]: [INFO] Saving configuration to pom. [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESS [INFO] ------------------------------------------------------------------------ [INFO] Total time: 13.069 s [INFO] Finished at: 2023-07-27T06:52:48Z [INFO] ------------------------------------------------------------------------
自分の選択内容を確認した後、プラグインは、上記のプラグイン要素とお使いの Web アプリを Azure App Service で実行するように構成する必要な設定をお使いのプロジェクトの pom.xml
ファイルに追加します。
pom.xml
ファイルの関連部分は、次の例のようになります。
<build>
<plugins>
<plugin>
<groupId>com.microsoft.azure</groupId>
<artifactId>>azure-webapp-maven-plugin</artifactId>
<version>x.xx.x</version>
<configuration>
<schemaVersion>v2</schemaVersion>
<resourceGroup>your-resourcegroup-name</resourceGroup>
<appName>your-app-name</appName>
...
</configuration>
</plugin>
</plugins>
</build>
pom.xml
内で App Service の構成を直接変更できます。 一般的な構成をいくつか次の表に示します。
プロパティ | Required | 説明 | Version |
---|---|---|---|
<schemaVersion> |
false | 構成スキーマのバージョンを指定します。 サポートされる値は v1 、v2 です。 |
1.5.2 |
<subscriptionId> |
false | サブスクリプション ID を指定します。 | 0.1.0 以降 |
<resourceGroup> |
true | Web アプリの Azure リソース グループ。 | 0.1.0 以降 |
<appName> |
true | Web アプリの名前。 | 0.1.0 以降 |
<region> |
false | Web アプリがホストされるリージョンを指定します。既定値は centralus です。 すべての有効なリージョンについては、「サポートされているリージョン」を参照してください。 | 0.1.0 以降 |
<pricingTier> |
false | Web アプリの価格レベル。 運用ワークロードの場合の既定値は P1v2 ですが、Java Dev/Test の場合は B2 が推奨される最小構成です。 詳細については、「App Service の価格」を参照してください | 0.1.0 以降 |
<runtime> |
false | ランタイム環境の構成。 詳細については、「構成の詳細」を参照してください。 | 0.1.0 以降 |
<deployment> |
false | デプロイの構成。 詳細については、「構成の詳細」を参照してください。 | 0.1.0 以降 |
構成の完全な一覧については、プラグインのリファレンス ドキュメントを参照してください。 すべての Azure Maven プラグインでは、一連の構成が共通しています。 これらの構成については、「共通の構成」を参照してください。 App Service に固有の構成については、「Azure Web App: 構成の詳細」を参照してください。
<appName>
と <resourceGroup>
の値 (デモでは helloworld-1690440759246
と helloworld-1690440759246-rg
となっています) に注意してください。 これらは後で使用します。
4 - アプリをデプロイする
pom.xml ファイル内のすべての構成が準備できたら、単一のコマンドで Java アプリを Azure にデプロイできます。
mvn package azure-webapp:deploy
デプロイが完了すると、アプリケーションは http://<appName>.azurewebsites.net/
(デモでは http://helloworld-1690440759246.azurewebsites.net
) で準備が整います。 ローカル Web ブラウザーで URL を開くと、次のように表示されます
おめでとうございます。 App Service に初めての Java アプリをデプロイできました。
5 - リソースをクリーンアップする
前の手順では、リソース グループ内に Azure リソースを作成しました。 今後これらのリソースが必要でない場合は、ポータルからリソース グループを削除するか、Cloud Shell で次のコマンドを実行します。
az group delete --name <your resource group name; for example: helloworld-1690440759246-rg> --yes
このコマンドの実行には、少し時間がかかる場合があります。
このクイックスタートでは、Maven Plugin for Azure App Service Web Apps を使って、Java Web アプリと埋め込みサーバーを Azure App Service にデプロイします。 App Service は、高度にスケーラブルで、パッチを自己適用する Web アプリ ホスティング サービスを提供します。 タブを使用して、Tomcat、JBoss、埋め込みサーバー (Java SE) の手順間の切り替えを行います。
このクイックスタートでは、azure-webapp-maven-plugin プラグインを使って、Spring Boot アプリ、埋め込み Tomcat、または Quarkus アプリをデプロイします。
Note
App Service は Spring アプリをホストできます。 すべての Spring サービスを必要とする Spring アプリの場合は、代わりに Azure Spring Apps を試してください。
Maven が好みの開発ツールでない場合は、Java 開発者向けの同様のチュートリアルを確認してください。
Azure サブスクリプションをお持ちでない場合は、開始する前に Azure 無料アカウントを作成してください。
1 - Azure Cloud Shell を使用する
Azure では、ブラウザーを介して使用できる対話型のシェル環境、Azure Cloud Shell がホストされています。 Cloud Shell で Bash または PowerShell を使用して、Azure サービスを操作できます。 ローカル環境に何もインストールしなくても、Cloud Shell にプレインストールされているコマンドを使用して、この記事のコードを実行できます。
Azure Cloud Shell を開始するには、以下のようにします。
オプション | 例とリンク |
---|---|
コードまたはコマンド ブロックの右上隅にある [使ってみる] を選択します。 [使ってみる] を選択しても、コードまたはコマンドは Cloud Shell に自動的にはコピーされません。 | |
https://shell.azure.com に移動するか、[Cloud Shell を起動する] ボタンを選択して、ブラウザーで Cloud Shell を開きます。 | |
Azure portal の右上にあるメニュー バーの [Cloud Shell] ボタンを選択します。 |
Azure Cloud Shell を使用するには、以下のようにします。
Cloud Shell を開始します。
コード ブロック (またはコマンド ブロック) の [コピー] ボタンを選択し、コードまたはコマンドをコピーします。
Windows と Linux では Ctrl+Shift+V キーを選択し、macOS では Cmd+Shift+V キーを選択して、コードまたはコマンドを Cloud Shell セッションに貼り付けます。
Enter キーを選択して、コードまたはコマンドを実行します。
2 - サンプル アプリを入手する
既定の Spring Boot Web アプリケーション テンプレートをダウンロードして抽出します。 このリポジトリは、Spring CLI コマンド
spring boot new my-webapp
を実行すると自動的にクローンされます。git clone https://github.com/rd-1-2022/rest-service my-webapp
作業ディレクトリをプロジェクト フォルダーに変更します。
cd my-webapp
3 - Maven プラグインを構成する
Azure App Service へのデプロイ プロセスでは、Azure CLI から Azure 資格情報が自動的に使用されます。 Azure CLI がローカルにインストールされていない場合、Maven プラグインは OAuth またはデバイス ログインを使用して認証します。 詳細については、Maven プラグインによる認証に関するページを参照してください。
次に示す Maven コマンドを実行して、デプロイを構成します。 このコマンドは、App Service オペレーティング システム、Java バージョン、および Tomcat バージョンを設定するのに役立ちます。
mvn com.microsoft.azure:azure-webapp-maven-plugin:2.13.0:config
[新しい実行構成の作成] では、「Y」と入力してから、Enter キーを押します。
[OS の値を定義] では、Linux 用に「2」と入力してから、Enter キーを押します。
[javaVersion の値を定義] では、Java 17 用に「1」と入力してから、Enter キーを押します。
[pricingTier の値を定義] では、P1v2 用に「3」と入力してから、Enter キーを押します。
[確認] では、「Y」と入力してから、Enter キーを押します。
Please confirm webapp properties AppName : <generated-app-name> ResourceGroup : <generated-app-name>-rg Region : centralus PricingTier : P1v2 OS : Linux Java Version: Java 17 Web server stack: Java SE Deploy to slot : false Confirm (Y/N) [Y]: y [INFO] Saving configuration to pom. [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESS [INFO] ------------------------------------------------------------------------ [INFO] Total time: 8.139 s [INFO] Finished at: 2023-07-26T12:42:48Z [INFO] ------------------------------------------------------------------------
選択内容を確認した後、プラグインによって、Web アプリを Azure App Service で実行するように構成する、上記のプラグイン要素と必須の設定が、プロジェクトの pom.xml
ファイルに追加されます。
pom.xml
ファイルの関連部分は、次の例のようになります。
<build>
<plugins>
<plugin>
<groupId>com.microsoft.azure</groupId>
<artifactId>>azure-webapp-maven-plugin</artifactId>
<version>x.xx.x</version>
<configuration>
<schemaVersion>v2</schemaVersion>
<resourceGroup>your-resourcegroup-name</resourceGroup>
<appName>your-app-name</appName>
...
</configuration>
</plugin>
</plugins>
</build>
pom.xml
内で App Service の構成を直接変更できます。 一般的な構成をいくつか次の表に示します。
プロパティ | Required | 説明 | Version |
---|---|---|---|
<schemaVersion> |
false | 構成スキーマのバージョンを指定します。 サポートされる値は v1 、v2 です。 |
1.5.2 |
<subscriptionId> |
false | サブスクリプション ID を指定します。 | 0.1.0 以降 |
<resourceGroup> |
true | Web アプリの Azure リソース グループ。 | 0.1.0 以降 |
<appName> |
true | Web アプリの名前。 | 0.1.0 以降 |
<region> |
false | Web アプリがホストされるリージョンを指定します。既定値は centralus です。 すべての有効なリージョンについては、「サポートされているリージョン」を参照してください。 | 0.1.0 以降 |
<pricingTier> |
false | Web アプリの価格レベル。 運用ワークロードの場合の既定値は P1v2 ですが、Java Dev/Test の場合は B2 が推奨される最小構成です。 詳細については、「App Service の価格」を参照してください | 0.1.0 以降 |
<runtime> |
false | ランタイム環境の構成。 詳細については、「構成の詳細」を参照してください。 | 0.1.0 以降 |
<deployment> |
false | デプロイの構成。 詳細については、「構成の詳細」を参照してください。 | 0.1.0 以降 |
構成の完全な一覧については、プラグインのリファレンス ドキュメントを参照してください。 すべての Azure Maven プラグインでは、一連の構成が共通しています。 これらの構成については、「共通の構成」を参照してください。 App Service に固有の構成については、「Azure Web App: 構成の詳細」を参照してください。
<appName>
と <resourceGroup>
の値に注意してください。 これらは後で使用します。
4 - アプリをデプロイする
pom.xml ファイル内のすべての構成が準備できたら、単一のコマンドで Java アプリを Azure にデプロイできます。
次のコマンドを使って JAR ファイルをビルドします。
mvn clean package
次のコマンドを使用することで Azure にデプロイします。
mvn azure-webapp:deploy
デプロイが成功すると、次の出力が表示されます。
[INFO] Successfully deployed the artifact to https://<app-name>.azurewebsites.net [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESS [INFO] ------------------------------------------------------------------------ [INFO] Total time: 02:20 min [INFO] Finished at: 2023-07-26T12:47:50Z [INFO] ------------------------------------------------------------------------
デプロイが完了すると、アプリケーションは http://<appName>.azurewebsites.net/
で準備が整います。 ローカル Web ブラウザーで URL http://<appName>.azurewebsites.net/greeting
を開くと (/greeting
パスに注意してください)、次のように表示されます。
お疲れさまでした。 App Service に初めての Java アプリをデプロイしました。
5 - リソースをクリーンアップする
前の手順では、リソース グループ内に Azure リソースを作成しました。 今後これらのリソースが必要でない場合は、ポータルからリソース グループを削除するか、Cloud Shell で次のコマンドを実行します。
az group delete --name <your resource group name; for example: quarkus-hello-azure-1690375364238-rg> --yes
このコマンドの実行には 1 分かかることがあります。
このクイックスタートでは、Maven Plugin for Azure App Service Web Apps を使用して、Java Web アプリを Azure App Service 内の Linux JBoss EAP サーバーにデプロイします。 App Service は、高度にスケーラブルで、パッチを自己適用する Web アプリ ホスティング サービスを提供します。 タブを使用して、Tomcat、JBoss、埋め込みサーバー (Java SE) の手順間の切り替えを行います。
Maven が好みの開発ツールでない場合は、Java 開発者向けの同様のチュートリアルを確認してください。
Azure サブスクリプションをお持ちでない場合は、開始する前に Azure 無料アカウントを作成してください。
1 - Azure Cloud Shell を使用する
Azure では、ブラウザーを介して使用できる対話型のシェル環境、Azure Cloud Shell がホストされています。 Cloud Shell で Bash または PowerShell を使用して、Azure サービスを操作できます。 ローカル環境に何もインストールしなくても、Cloud Shell にプレインストールされているコマンドを使用して、この記事のコードを実行できます。
Azure Cloud Shell を開始するには、以下のようにします。
オプション | 例とリンク |
---|---|
コードまたはコマンド ブロックの右上隅にある [使ってみる] を選択します。 [使ってみる] を選択しても、コードまたはコマンドは Cloud Shell に自動的にはコピーされません。 | |
https://shell.azure.com に移動するか、[Cloud Shell を起動する] ボタンを選択して、ブラウザーで Cloud Shell を開きます。 | |
Azure portal の右上にあるメニュー バーの [Cloud Shell] ボタンを選択します。 |
Azure Cloud Shell を使用するには、以下のようにします。
Cloud Shell を開始します。
コード ブロック (またはコマンド ブロック) の [コピー] ボタンを選択し、コードまたはコマンドをコピーします。
Windows と Linux では Ctrl+Shift+V キーを選択し、macOS では Cmd+Shift+V キーを選択して、コードまたはコマンドを Cloud Shell セッションに貼り付けます。
Enter キーを選択して、コードまたはコマンドを実行します。
2 - Java アプリを作成する
Pet Store デモ アプリケーションを複製します。
git clone https://github.com/Azure-Samples/app-service-java-quickstart
ディレクトリを完成したペット ストア プロジェクトに変更し、これをビルドします。
ヒント
petstore-ee7
サンプルには Java 11 以降が必要です。 booty-duke-app-service
サンプル プロジェクトには Java 17 が必要です。 インストールされている Java のバージョンが 17 未満の場合は、最上位ではなく、petstore-ee7
ディレクトリ内からビルドを実行します。
cd app-service-java-quickstart
git checkout 20230308
cd petstore-ee7
mvn clean install
HEAD がデタッチされた状態であることを示すメッセージが表示された場合、このメッセージは無視しても問題ありません。 このクイックスタートでは Git コミットを一切行わないので、デタッチされた HEAD 状態が適切です。
3 - Maven プラグインを構成する
Azure App Service へのデプロイ プロセスでは、Azure CLI から Azure 資格情報が自動的に使用されます。 Azure CLI がローカルにインストールされていない場合、Maven プラグインは OAuth またはデバイス ログインを使用して認証します。 詳細については、Maven プラグインによる認証に関するページを参照してください。
次に示す Maven コマンドを実行して、デプロイを構成します。 このコマンドは、App Service オペレーティング システム、Java バージョン、および Tomcat バージョンを設定するのに役立ちます。
mvn com.microsoft.azure:azure-webapp-maven-plugin:2.13.0:config
[新しい実行構成の作成] では、「Y」と入力してから、Enter キーを押します。
[OS の値を定義] では、Linux 用に「2」と入力してから、Enter キーを押します。
[javaVersion の値を定義] では、Java 11 用に「2」と入力してから、Enter キーを押します。
[webContainer] オプションでは、Jbosseap 7 用に「4」と入力してから、Enter キーを押します。
[pricingTier の値を定義] では、P1v3 用に「1」と入力してから、Enter キーを押します。
[確認] では、「Y」と入力してから、Enter キーを押します。
Please confirm webapp properties AppName : petstoreee7-1690443003536 ResourceGroup : petstoreee7-1690443003536-rg Region : centralus PricingTier : P1v3 OS : Linux Java Version: Java 11 Web server stack: Jbosseap 7 Deploy to slot : false Confirm (Y/N) [Y]: [INFO] Saving configuration to pom. [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESS [INFO] ------------------------------------------------------------------------ [INFO] Total time: 19.914 s [INFO] Finished at: 2023-07-27T07:30:20Z [INFO] ------------------------------------------------------------------------
自分の選択内容を確認した後、プラグインは、上記のプラグイン要素とお使いの Web アプリを Azure App Service で実行するように構成する必要な設定をお使いのプロジェクトの pom.xml
ファイルに追加します。
pom.xml
ファイルの関連部分は、次の例のようになります。
<build>
<plugins>
<plugin>
<groupId>com.microsoft.azure</groupId>
<artifactId>>azure-webapp-maven-plugin</artifactId>
<version>x.xx.x</version>
<configuration>
<schemaVersion>v2</schemaVersion>
<resourceGroup>your-resourcegroup-name</resourceGroup>
<appName>your-app-name</appName>
...
</configuration>
</plugin>
</plugins>
</build>
pom.xml
内で App Service の構成を直接変更できます。 一般的な構成をいくつか次の表に示します。
プロパティ | Required | 説明 | Version |
---|---|---|---|
<schemaVersion> |
false | 構成スキーマのバージョンを指定します。 サポートされる値は v1 、v2 です。 |
1.5.2 |
<subscriptionId> |
false | サブスクリプション ID を指定します。 | 0.1.0 以降 |
<resourceGroup> |
true | Web アプリの Azure リソース グループ。 | 0.1.0 以降 |
<appName> |
true | Web アプリの名前。 | 0.1.0 以降 |
<region> |
false | Web アプリがホストされるリージョンを指定します。既定値は centralus です。 すべての有効なリージョンについては、「サポートされているリージョン」を参照してください。 | 0.1.0 以降 |
<pricingTier> |
false | Web アプリの価格レベル。 運用ワークロードの場合の既定値は P1v2 ですが、Java Dev/Test の場合は B2 が推奨される最小構成です。 詳細については、「App Service の価格」を参照してください | 0.1.0 以降 |
<runtime> |
false | ランタイム環境の構成。 詳細については、「構成の詳細」を参照してください。 | 0.1.0 以降 |
<deployment> |
false | デプロイの構成。 詳細については、「構成の詳細」を参照してください。 | 0.1.0 以降 |
構成の完全な一覧については、プラグインのリファレンス ドキュメントを参照してください。 すべての Azure Maven プラグインでは、一連の構成が共通しています。 これらの構成については、「共通の構成」を参照してください。 App Service に固有の構成については、「Azure Web App: 構成の詳細」を参照してください。
<appName>
と <resourceGroup>
の値 (デモでは petstoreee7-1690443003536
と petstoreee7-1690443003536-rg
となっています) に注意してください。 これらは後で使用します。
4 - アプリをデプロイする
pom.xml ファイル内のすべての構成が準備できたら、単一のコマンドで Java アプリを Azure にデプロイできます。
# Disable testing, as it requires Wildfly to be installed locally.
mvn package azure-webapp:deploy -DskipTests
デプロイが完了すると、アプリケーションは http://<appName>.azurewebsites.net/
(デモでは http://petstoreee7-1690443003536.azurewebsites.net
) で準備が整います。 ローカル Web ブラウザーで URL を開くと、次のように表示されます
おめでとうございます。 App Service に初めての Java アプリをデプロイできました。
5 - リソースをクリーンアップする
前の手順では、リソース グループ内に Azure リソースを作成しました。 今後これらのリソースが必要でない場合は、ポータルからリソース グループを削除するか、Cloud Shell で次のコマンドを実行します。
az group delete --name <your resource group name; for example: petstoreee7-1690443003536-rg> --yes
このコマンドの実行には、少し時間がかかる場合があります。