Развертывание веб-приложения Quarkus в Службе приложений Azure с помощью Maven
В этом кратком руководстве показано, как использовать подключаемый модуль Maven для веб-приложений Службы приложений Azure, чтобы развернуть приложение Quarkus в Службе приложений Azure в Linux. Развертывание Java SE является предпочтительным по сравнению с Tomcat и файлами WAR, если вам нужно объединить зависимости, среду выполнения и файлы конфигурации приложения в единый развертываемый артефакт.
Если у вас нет подписки Azure, создайте бесплатную учетную запись, прежде чем приступить к работе.
Необходимые компоненты
- Azure CLI на локальном компьютере или в Azure Cloud Shell.
- Поддерживаемая версия Java Development Kit (JDK). Дополнительные сведения о версиях JDK, доступных для разработки в Azure, см. в статье Поддержка Java в Azure и Azure Stack.
- Apache Maven версии 3.
Вход в Azure CLI
Azure CLI — самый простой и наиболее удобный способ развернуть приложение Quarkus с помощью подключаемого модуля Maven.
Войдите в учетную запись Azure с помощью интерфейса командной строки Azure.
az login
Для завершения процесса входа следуйте инструкциям.
Создание примера приложения в MicroProfile Starter
В этом разделе вы создадите приложение Quarkus и протестируете его локально.
Создание базового проекта Java SE 8
Откройте веб-браузер и перейдите на сайт MicroProfile Starter.
Введите следующие значения для указанных здесь полей.
Поле значение groupId com.microsoft.azure.samples.quarkus artifactId quarkus-hello-azure MicroProfile Version (Версия MicroProfile) MP 3.2 Java SE Version (Версия Java SE) Java 8 MicroProfile Runtime (Среда выполнения MicroProfile) Quarkus Examples for Specifications (Примеры для требований) Метрики, OpenAPI Выберите "Скачать", чтобы скачать проект.
Распакуйте файл архива, например:
unzip Quarkus-hello-azure.zip
Создание базового проекта Java SE 11
Чтобы создать базовый проект Java 11, выполните следующую команду:
mvn io.quarkus:quarkus-maven-plugin:2.6.1.Final:create \
-DprojectGroupId=com.microsoft.azure.samples.quarkus \
-DprojectArtifactId=quarkus-hello-azure \
-DclassName="com.microsoft.azure.samples.quarkus.App" \
-Dpath="/hello"
Запуск приложения в локальной среде
Перейдите в каталог готового проекта, например:
cd quarkus-hello-azure/
Создайте и запустите проект с помощью Maven; например:
mvn quarkus:dev
Проверьте веб-приложение, перейдя к нему локально с помощью веб-браузера. Например, если имеется Curl, можно использовать следующую команду:
Для проекта Java SE 8:
curl http://localhost:8080/data/hello
Для проекта Java SE 11:
curl localhost:8080/hello
Появится следующее сообщение: Hello World или hello
Настройка подключаемого модуля Maven для Службы приложений Azure
В рамках этого раздела вы настроите файл pom.xml проекта Quarkus, чтобы развернуть приложение в Службе приложений Azure на платформе Linux с помощью Maven.
Откройте файл pom.xml в текстовом редакторе.
В разделе
<build>
файла pom.xml добавьте следующую запись<plugin>
внутри тега<plugins>
послеmaven-surefire-plugin
.<plugin> <groupId>com.microsoft.azure</groupId> <artifactId>azure-webapp-maven-plugin</artifactId> <version>2.5.0</version> </plugin>
Чтобы настроить это развертывание, выполните следующую команду Maven:
mvn azure-webapp:config
Выберите следующие параметры, когда появится соответствующий запрос:
Поле ввода Введите или выберите значение Выберите подписку Введите идентификатор подписки. Определите значение для OS(Default: Linux): 2. Linux Определите значение javaVersion(Default: Java 8): 2. Java 11 Определите значение для ценообразования (по умолчанию: P1v2): 9. P1v2 Подтверждение (Y/N) г Выходные данные этой команды выглядят примерно так:
[INFO] Scanning for projects... [INFO] [INFO] ------< com.microsoft.azure.samples.quarkus:quarkus-hello-azure >------- [INFO] Building quarkus-hello-azure 1.0-SNAPSHOT [INFO] --------------------------------[ jar ]--------------------------------- [INFO] [INFO] --- azure-webapp-maven-plugin:2.5.0:config (default-cli) @ quarkus-hello-azure --- [INFO] Auth type: OAUTH2 Username: abc@xyz.com Available subscriptions: * 1: Subscription1(xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx) 2: Subscription2(yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyy) Please choose a subscription [xxx]: 1 [INFO] Subscription: Subscription1(xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx) Define value for OS [Linux]: 1: Windows * 2: Linux 3: Docker Enter your choice: 2 Define value for javaVersion [Java 8]: * 1: Java 8 2: Java 11 3: Java 17 Enter your choice: 2 Define value for pricingTier [P1v2]: 1: B1 2: B2 3: B3 4: D1 5: EP1 6: EP2 7: EP3 8: F1 * 9: P1v2 10: P1v3 11: P2v2 12: P2v3 13: P3v2 14: P3v3 15: S1 16: S2 17: S3 18: Y1 Enter your choice: 9 Please confirm webapp properties Subscription Id : xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx AppName : quarkus-hello-azure-1601011883156 ResourceGroup : quarkus-hello-azure-1601011883156-rg Region : centralus PricingTier : P1v2 OS : Linux Java : Java 11 Web server stack: Java SE Deploy to slot : false Confirm (Y/N) [Y]: [INFO] Saving configuration to pom. [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESS [INFO] ------------------------------------------------------------------------ [INFO] Total time: 16.502 s [INFO] Finished at: 2020-09-25T14:31:34+09:00 [INFO] ------------------------------------------------------------------------
Добавьте раздел в
<appSettings>
<configuration>
разделPORT
,WEBSITES_PORT
а такжеWEBSITES_CONTAINER_START_TIME_LIMIT
. Xml-запись будетazure-webapp-maven-plugin
выглядеть примерно так:<plugin> <groupId>com.microsoft.azure</groupId> <artifactId>azure-webapp-maven-plugin</artifactId> <version>2.5.0</version> <configuration> <schemaVersion>V2</schemaVersion> <resourceGroup>microprofile</resourceGroup> <appName>quarkus-hello-azure-1591836715762</appName> <pricingTier>P1v2</pricingTier> <region>centralus</region> <runtime> <os>linux</os> <javaVersion>java 11</javaVersion> <webContainer>java SE</webContainer> </runtime> <appSettings> <property> <name>PORT</name> <value>8080</value> </property> <property> <name>WEBSITES_PORT</name> <value>8080</value> </property> <property> <name>WEBSITES_CONTAINER_START_TIME_LIMIT</name> <value>600</value> </property> </appSettings> <deployment> <resources> <resource> <directory>${project.basedir}/target</directory> <includes> <include>*.jar</include> </includes> </resource> </resources> </deployment> </configuration> </plugin>
Добавьте следующую запись в файл src/main/resources/application.properties, чтобы создать Uber (FAT) JAR.
quarkus.package.type=uber-jar
Развертывание приложения в Azure
Завершив настройку всех параметров, описанную в предыдущих разделах этой статьи, можно приступать к развертыванию веб-приложения в Azure. Для этого выполните следующие действия.
Если вы вносили изменения в файл pom.xml, заново скомпилируйте файл JAR с помощью следующей команды:
mvn clean package
Разверните веб-приложение в Azure, используя следующую команду:
mvn azure-webapp:deploy
Если развертывание выполнено успешно, вы увидите следующие выходные данные:
[INFO] Successfully deployed the artifact to https://quarkus-hello-azure-1591836715762.azurewebsites.net
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 02:20 min
[INFO] Finished at: 2020-06-11T10:06:51+09:00
[INFO] ------------------------------------------------------------------------
Maven выполнит развертывание веб-приложения в Azure. Если план веб-приложения или веб-приложения еще не существует, он будет создан для вас. Отображение веб-приложения по URL-адресу, указанному в выходных данных, может занять несколько минут. Перейдите по этому URL-адресу в веб-браузере. Вы должны увидеть приведенный ниже экран.
При развертывании веб-приложения его можно управлять с помощью портал Azure.
Веб-приложение будет указано в группе ресурсов microprofile .
Вы можете получить доступ к веб-приложению, выбрав "Обзор " на странице обзора веб-приложения. Убедитесь, что развертывание было успешным и запущено.
Подтвердите поток журнала из запущенного Служба приложений
Вы можете просмотреть журналы (или выполнить вывод последнего фрагмента) из запущенной Службы приложений. Все вызовы console.log
в коде сайта отображаются в окне терминала.
az webapp log tail
--resource-group microprofile \
--name quarkus-hello-azure-1601011883156
Очистка ресурсов
Если ресурсы Azure больше не нужны, их можно удалить. Для этого необходимо удалить группу ресурсов.
- На портале Azure в меню слева выберите "Группа ресурсов".
- Введите microprofile в поле Фильтровать по имени. Группа ресурсов, созданная при работе с этим учебником, должна иметь этот префикс.
- Выберите группу ресурсов, созданную при работе с этим руководством.
- В меню сверху выберите "Удалить группу ресурсов".
Следующие шаги
Дополнительные сведения о MicroProfile и Azure см. в центре документации об использовании MicroProfile в Azure.
Дополнительные ресурсы
Дополнительные сведения о различных технологиях, рассматриваемых в данной статье, см. в следующих статьях.