Упражнение. Развертывание веб-приложения Java в Службе приложений Azure
Проходя этот урок, вы развернете приложение в Службе приложений Azure.
Что такое Служба приложений Azure?
Azure предоставляет Службу приложений Azure в качестве платформы как услуги (PaaS) для запуска Tomcat. Она включает в себя среду Windows и Linux, безопасность, балансировку нагрузки, автомасштабирование, а также интеграцию DevOps. Управлением ОС и Tomcat будет заниматься Azure, а вы сможете сосредоточиться на сборке приложений.
Получение примеров приложений JSF
Чтобы развернуть веб-приложение Java, вы можете получить веб-приложение PrimeFaces JavaServer Face (JSF) из GitHub, как показано ниже.
git clone https://github.com/yoshioterada/Deploy-PrimeFaces-JSF-Web-App-on-Tomcat-9.0
После клонирования вы увидите следующие файлы в каталоге:
Deploy-PrimeFaces-JSF-Web-App-on-Tomcat-9.0
├── pom.xml
└── src
└── main
├── java
│ └── com
│ └── microsoft
│ └── azure
│ └── samples
│ ├── controller
│ │ └── TodoListController.java
│ ├── dao
│ │ ├── ItemManagement.java
│ │ └── TodoItemManagementInMemory.java
│ └── model
│ └── TodoItem.java
└── webapp
├── META-INF
│ └── context.xml
├── WEB-INF
│ ├── beans.xml
│ ├── classes
│ │ └── logging.properties
│ ├── faces-config.xml
│ └── web.xml
└── index.xhtml
Подключаемый модуль Maven для службы приложений Azure
Корпорация Майкрософт предоставляет подключаемый модуль Maven для службы приложение Azure, чтобы упростить развертывание приложений в Azure разработчикам Java. С помощью этого подключаемого модуля можно легко настроить и развернуть приложение в Azure. Выполните следующую команду, чтобы использовать подключаемый модуль Maven для службы приложение Azure.
Настройка подключаемого модуля Maven для службы приложений Azure
Чтобы настроить подключаемый модуль Maven для службы приложение Azure, выполните следующую команду:
mvn com.microsoft.azure:azure-webapp-maven-plugin:1.12.0:config
После выполнения команды появится запрос с несколькими вопросами. Введите и выберите необходимые элементы, а затем задайте им значения. Укажите следующие параметры:
Товар | Входное значение |
---|---|
Отток подписок | Выберите подписку Azure |
Определение значения для параметра OS | 1. Linux |
Определите значение для ценовой категории | P1v2 |
Определите значения для версии Java | 1. Java 8 или 2: Java 11 |
Определите значения для стека среды выполнения | 3: TOMCAT 9.0 |
Подтверждение (Y/N) | Y |
После выполнения команды будут отображаться следующие результаты:
mvn com.microsoft.azure:azure-webapp-maven-plugin:1.12.0:config
Picked up JAVA_TOOL_OPTIONS: -Dfile.encoding=UTF-8
[INFO] Scanning for projects...
[INFO]
[INFO] -----------< com.microsoft.azure.samples:azure-javaweb-app >------------
[INFO] Building azure-javaweb-app Maven Webapp 1.0-SNAPSHOT
[INFO] --------------------------------[ war ]---------------------------------
[INFO]
[INFO] --- azure-webapp-maven-plugin:1.12.0:config (default-cli) @ azure-javaweb-app ---
Available subscriptions:
* 1: My Subscription (********-****-****-****-************)
Please choose a subscription [My Subscription]: [Enter]
[INFO] It may take a few minutes to load all Java Web Apps, please be patient.
[WARNING] There are no Java Web Apps in current subscription, please follow the following steps to create a new one.
Define value for OS [Linux]:
* 1: Linux
2: Docker
3: Windows
Enter your choice:
Define value for pricingTier [P1v2]:
1: B1
2: B2
3: B3
4: D1
5: F1
* 6: P1v2
7: P2v2
8: P3v2
9: S1
10: S2
11: S3
Define value for javaVersion [Java 8]:
* 1: Java 8
2: Java 11
Enter your choice: 1
Define value for runtimeStack:
1: Jbosseap 7.2
* 2: Tomcat 8.5
3: Tomcat 9.0
Enter your choice: 3
Please confirm webapp properties
Subscription Id : aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e
AppName : azure-javaweb-app-1604982052600
ResourceGroup : azure-javaweb-app-1604982052600-rg
Region : westeurope
PricingTier : PremiumV2_P1v2
OS : Linux
Java : Java 8
Web server stack: Tomcat 9.0
Deploy to slot : false
Confirm (Y/N) [Y]: y
[INFO] Saving configuration to pom.
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 37.656 s
[INFO] Finished at: 2020-10-01T17:24:02+09:00
[INFO] ------------------------------------------------------------------------
В разделе <plugins>
в файле pom.xml
появится новый раздел.
Если вы хотите изменить имя группы ресурсов, имя экземпляра и расположение развертывания, измените <resourceGroup>
, <appName>
и <region>
.
<plugins>
<plugin>
<groupId>com.microsoft.azure</groupId>
<artifactId>azure-webapp-maven-plugin</artifactId>
<version>1.12.0</version>
<configuration>
<schemaVersion>V2</schemaVersion>
<subscriptionId>********-****-****-****-************</subscriptionId>
<resourceGroup>azure-javaweb-app</resourceGroup>
<appName>azure-javaweb-app-1601463451101</appName>
<pricingTier>P1v2</pricingTier>
<region>japaneast</region>
<runtime>
<os>linux</os>
<javaVersion>Java 8</javaVersion>
<webContainer>TOMCAT 9.0</webContainer>
</runtime>
<deployment>
<resources>
<resource>
<directory>${project.basedir}/target</directory>
<includes>
<include>*.war</include>
</includes>
</resource>
</resources>
</deployment>
</configuration>
</plugin>
</plugins>
Компиляция и развертывание в Службе приложений Azure
Теперь, когда параметры развертывания в Службе приложений Azure готовы, скомпилируйте исходный код еще раз:
mvn clean package
После компиляции используйте команду Maven Plugin for Azure веб-приложения для развертывания приложения. Выполните следующую команду:
mvn azure-webapp:deploy
После завершения развертывания будет выведено следующее сообщение.
[INFO] Successfully deployed the artifact to https://azure-javaweb-app-1601463451101.azurewebsites.net
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 02:15 min
[INFO] Finished at: 2020-11-19T15:55:55+09:00
[INFO] ------------------------------------------------------------------------
Общедоступный URL-адрес развернутого приложения отображается в строке Successfully deployed the artifact to
. Доступ к URL-адресу с помощью браузера, как показано в следующем примере:
https://azure-javaweb-app-1601463451101.azurewebsites.net
Подтверждение потока журналов из командной строки
Чтобы получить доступ к потоку журналов, выполните следующую команду интерфейса командной строки:
az webapp log tail -g azure-javaweb-app -n azure-javaweb-app-1601463451101
Вы получите следующий результат:
Сводка по упражнению
В этом уроке вы узнали, как создать и упаковать веб-приложение Java, как использовать подключаемый модуль Maven для Azure веб-приложения и как развернуть приложение в службе приложение Azure. Эти действия применимы не только для приложений JSF, но и для большинства веб-приложений Java.