Развертывание веб-приложения в Службе приложений 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.