Web アプリを Azure App Service にデプロイする

完了

azure-webapp-maven-pluginには、Java 開発者向けの 2 つの目標があります。1 つ目は、Azure App Service プラグインの管理と構成を容易にすることです。2 つ目は、Maven プロジェクトを Azure App Service に簡単にデプロイすることです。 前の演習では、簡単な "hello world" サンプル Java Web アプリを作成し、ローカルでテストしました。 Azure App Service 用の Maven プラグインをプロジェクトに追加すると、アプリを Azure App Service にデプロイできます。

このユニットでは、会社が Azure App Service でアプリをホストするためのオプションを見てから、Maven プロジェクトに azure-webapp-maven-plugin を追加して構成する方法について説明します。

Azure App Service の概要

Azure App Service を使用すると、会社の Web サイト、Web アプリ、REST API、およびその他のアプリケーション コードを Azure でホストできます。 プロジェクト コードはクラウドで実行されています。インフラストラクチャをプロビジョニングまたは構成する必要はありません。 Azure App Service で Web アプリを実行すると、Azure で実行することの利点がすべて得られます。アプリはグローバルに利用でき、自動的にスケーリングされ、セキュリティとコンプライアンスが組み込まれており、使用したリソースに対してのみ課金されます。

Azure App Service では、複数のプログラミング言語がサポートされています。これにより、開発者は、最も快適な言語を使用してアプリケーションを記述し続けられます。 Java は、.NET Core、Python、Node.jsなどの他の言語と共に、一流の市民です。作成した Web アプリは、Linux、Windows、または Docker コンテナー内でホストできます。 Web アプリを Azure にデプロイする前に、OS と価格レベルを指定する App Service プランを Azure 上に作成します。これは、アプリに必要なプロビジョニングされたコンピューティング リソースのサイズを決定します。

Maven ワークフロー

Maven には、プロジェクトをビルドするための 3 つの組み込みライフサイクルがあります。 defaultcleansitedefault ライフサイクルには次のフェーズが含まれます。

フェーズ 説明
compile コードをコンパイルします
package コードを JAR または WAR にパッケージ化する
install パッケージをローカル リポジトリにインストールします
deploy 最終的なパッケージをリモート リポジトリにコピーします

ただし、Azure App Service 用の Maven プラグインを使用している場合、Maven の default ライフサイクルに含まれるデプロイ フェーズは使用しません。 代わりに、 mvn azure-webapp:deploy コマンドを使用してアプリを Azure にデプロイします。

Azure App Service 用の Maven プラグインをプロジェクトに追加する

Azure App Service 用の Maven プラグインを Web アプリに追加するには、次のように、 azure-webapp-maven-plugin 用の XML をプロジェクトの pom.xml ファイルに追加します。

<plugin>
  <groupId>com.microsoft.azure</groupId>
  <artifactId>azure-webapp-maven-plugin</artifactId>
  <version>2.13.0</version>
</plugin>

ただし、プラグインは POM ファイルに構成を追加するための便利でインタラクティブな方法を提供します。

mvn com.microsoft.azure:azure-webapp-maven-plugin:2.13.0:config

このプラグインは、App Service プランの構成に必要な情報を求められます。 選択内容を確認した後、プラグインは、上記のプラグイン要素と必要な設定をプロジェクトの pom.xml ファイルに追加し、Azure App Service で実行するように Web アプリを構成します。

Maven プラグインの最新バージョンについては、 Azure App Service ドキュメントの Maven プラグイン、または Maven Central Repository を確認してください。

構成オプション

このユニットの前のセクションでは、Azure App Service 用の Maven プラグインを対話形式で使用して Web アプリを構成する方法を示しました。 ただし、構成を対話形式で実行する必要はありません。 必要に応じて、プラグインの XML をプロジェクトの pom.xml ファイルに手動で追加できます。

pom.xml ファイルからの次の注釈付き抜粋は、必要な設定の一部を示しています。

<plugin> 
  <groupId>com.microsoft.azure</groupId>  
  <artifactId>azure-webapp-maven-plugin</artifactId>  
  <version>2.13.0</version>  
  <configuration> 
    <schemaVersion>v2</schemaVersion>  
    <subscriptionId>aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e</subscriptionId>  
    <resourceGroup>learn-9c627899-58ae-4ef5-9630-3336ec7bce0c</resourceGroup>  
    <appName>MyWebApp-1610102860270</appName>  
    <pricingTier>S1</pricingTier>  
    <region>westus</region>  
    <runtime> 
      <os>Linux</os>  
      <javaVersion>Java 17</javaVersion>  
      <webContainer>Tomcat 10.0</webContainer> 
    </runtime>  
    <deployment> 
      <resources> 
        <resource> 
          <directory>${project.basedir}/target</directory>  
          <includes> 
            <include>*.war</include> 
          </includes> 
        </resource> 
      </resources> 
    </deployment> 
  </configuration> 
</plugin> 

関連する構成オプションの一部を次の表に示します。 オプションの完全な一覧については、Azure App Service 用の Maven プラグインのドキュメントを参照してください。

タグ オプション
<javaVersion> Linux では、バージョン 8、11、および 17 がサポートされます
Windows では、バージョン 8、11、および 17 がサポートされています
<webContainer> Linux では、Tomcat、JBoss EAP 7.2、Java SE がサポートされます
Windows では Tomcat と Java SE がサポートされます
<resource> WAR または JAR がプロジェクト内のどこにあるかを指定します

配置オプション

App Service プランを既に作成している場合は、 pom.xml ファイルでそのプランの設定を指定できます。 Web アプリを Azure にデプロイすると、Maven はこれらの設定を使用して、新しいアプリを既存の App Service プランにデプロイします。

<!-- Deploy Web App to the existing App Service Plan -->
<appServicePlanResourceGroup>${PLAN_RESOURCEGROUP_NAME}</appServicePlanResourceGroup>
<appServicePlanName>${PLAN_NAME}</appServicePlanName>

もう 1 つのオプションは、プラグインのセットアップを対話形式で構成するときに、 azure-webapp-maven-plugin が App Service プランを作成できるようにすることです。 このオプションは、 pom.xml ファイルに既存の App Service プランを指定しない場合のプラグインの既定の動作です。

App Service プランを対話形式で作成するか手動で作成するかに関係なく、同じ Maven コマンドを使用してアプリケーション コードを Azure にデプロイします。

mvn package azure-webapp:deploy

次の演習では、Web アプリを Azure App Service にデプロイします。