Развертывание веб-приложения в Службе приложений Azure

Завершено

В azure-webapp-maven-plugin есть две цели для разработчиков Java: первый — упростить управление и настройку подключаемого модуля Службы приложений Azure, а второй — упростить развертывание проектов Maven в Службе приложений Azure. В предыдущем упражнении вы создали быстрый пример веб-приложения Java "hello world" и протестировали его локально. Добавление в проект Maven-плагина для Azure App Service позволяет развернуть приложение в этой службе.

В этом уроке вы изучите варианты размещения приложений в Службе приложений Azure, а затем вы узнаете, как добавить и настроить azure-webapp-maven-plugin в проект Maven.

Общие сведения о службе приложений Azure

Служба приложений Azure позволяет размещать веб-сайты, веб-приложения, REST API и другой код приложения в Azure. Код проекта выполняется в облаке; Вам не нужно подготавливать или настраивать инфраструктуру. Запуск веб-приложения в Службе приложений Azure предоставляет все преимущества работы в Azure: ваше приложение доступно глобально, оно масштабируется автоматически, имеет встроенные функции безопасности и соответствия требованиям, а также оплачиваете только используемые ресурсы.

Служба приложений Azure поддерживает несколько языков программирования, что позволяет разработчикам продолжать писать свои приложения с помощью языков, с которыми они наиболее удобны. Java — это гражданин первого класса, а также другие языки, такие как .NET Core, Python, Node.jsи т. д. Вы можете размещать веб-приложения, создаваемые в Linux, Windows или в контейнере Docker. Перед развертыванием веб-приложения в Azure вы создадите план службы приложений в Azure, указывающий ОС и ценовую категорию, которая определяет размер подготовленных вычислительных ресурсов, необходимых вашему приложению.

Рабочие процессы Maven

Maven имеет три встроенных жизненного цикла для создания проектов: default, cleanи site, где жизненный цикл default включает следующие этапы:

Фаза Описание
compile Компилирует код
package Упаковывает ваш код в JAR-файл или WAR-файл
install Устанавливает пакет в локальный репозиторий
deploy Копирует окончательный пакет в удаленный репозиторий

Однако при использовании плагина Maven для службы приложений Azure вы не будете использовать фазу развертывания, включенную в жизненный цикл Maven default. Вместо этого вы развернете приложение в Azure с помощью команды mvn azure-webapp:deploy.

Добавление плагина Maven для Azure App Service в ваш проект

Чтобы добавить Maven-плагин для службы приложений Azure в ваше веб-приложение, внесите XML-код для azure-webapp-maven-plugin в файл 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.

Заметка

Проверьте документацию по подключаемому модулю Maven для службы приложений Azure или Центральный репозиторий Maven, чтобы получить информацию о последней версии подключаемого модуля Maven.

Параметры конфигурации

В предыдущем разделе этого урока показано использование подключаемого модуля Maven для Службы приложений Azure в интерактивном режиме для настройки веб-приложения. Однако вам не нужно выполнять конфигурацию в интерактивном режиме. Если вы хотите, вы можете добавить 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> 

Некоторые из соответствующих параметров конфигурации приведены в следующей таблице. Полный список параметров см. в документации по плагину Maven для службы приложений Azure.

Тег Опции
<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-файл в проекте

Варианты развертывания

Если вы уже создали план службы приложений, можно указать параметры этого плана в файле pom.xml. При развертывании веб-приложения в Azure Maven использует эти параметры для развертывания нового приложения в существующем плане службы приложений.

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

Другой вариант — разрешить azure-webapp-maven-plugin создавать план службы приложений для вас при интерактивной настройке подключаемого модуля. Этот параметр используется по умолчанию для подключаемого модуля, если в файле pom.xml не указан существующий план службы приложений.

Независимо от того, хотите ли вы создать план службы приложений интерактивно или вручную, используйте ту же команду Maven для развертывания кода приложения в Azure:

mvn package azure-webapp:deploy

В следующем упражнении вы развернете веб-приложение в Службе приложений Azure.