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

Завершено

Проходя этот урок, вы развернете приложение в Службе приложений Azure.

Что такое Служба приложений Azure?

Azure предоставляет Службу приложений Azure в качестве платформы как услуги (PaaS) для запуска Tomcat. Она включает в себя среду Windows и Linux, безопасность, балансировку нагрузки, автомасштабирование, а также интеграцию DevOps. Управлением ОС и Tomcat будет заниматься Azure, а вы сможете сосредоточиться на сборке приложений.

Screenshot that shows the Azure portal screen.

Получение примеров приложений 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 : f77aafe8-6be4-4d3d-bd9c-d0c37687ef70
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

Screenshot that shows the deployed web app on Azure App Service.

Подтверждение потока журналов из командной строки

Чтобы получить доступ к потоку журналов, выполните следующую команду интерфейса командной строки:

az webapp log tail -g azure-javaweb-app -n azure-javaweb-app-1601463451101

Вы получите следующий результат:

Screenshot that shows the execution of the log stream.

Сводка по упражнению

В этом уроке вы узнали, как создать и упаковать веб-приложение Java, как использовать подключаемый модуль Maven для Azure веб-приложения и как развернуть приложение в службе приложение Azure. Эти действия применимы не только для приложений JSF, но и для большинства веб-приложений Java.