Развертывание приложений Spring Boot с помощью Maven
Примечание.
Планы "Базовый", "Стандартный" и "Корпоративный" будут устарели начиная с середины марта 2025 г. с 3-летнего периода выхода на пенсию. Рекомендуется перейти в приложения контейнеров Azure. Дополнительные сведения см. в объявлении о выходе на пенсию в Azure Spring Apps.
Стандартный план потребления и выделенного плана будет устарел с 30 сентября 2024 г. с полным завершением работы после шести месяцев. Рекомендуется перейти в приложения контейнеров Azure. Дополнительные сведения см. в статье "Миграция потребления Azure Spring Apps Standard" и выделенного плана в приложения контейнеров Azure.
Эта статья применима к: ✔️ Java ❌ C#
Эта статья относится к: ✔️ Basic/Standard ✔️ Enterprise
В этой статье показано, как использовать подключаемый модуль Azure Spring Apps Maven для настройки и развертывания приложений в Azure Spring Apps.
Необходимые компоненты
- Учетная запись Azure с активной подпиской. Создайте учетную запись бесплатно .
- Подготовленный экземпляр Azure Spring Apps.
- Пакет JDK 8 или пакет JDK 11
- Apache Maven
- Azure CLI версии 2.45.0 или более поздней версии с расширением Azure Spring Apps. Установите это расширение, выполнив следующую команду:
az extension add --name spring
Создание проекта Spring
Чтобы создать проект Spring для использования в этой статье, выполните следующие действия.
Перейдите в Spring Initializr, чтобы создать пример проекта с рекомендуемыми зависимостями для Azure Spring Apps. Эта ссылка использует следующий URL-адрес для предоставления параметров по умолчанию.
https://start.spring.io/#!type=maven-project&language=java&platformVersion=2.5.7&packaging=jar&jvmVersion=1.8&groupId=com.example&artifactId=hellospring&name=hellospring&description=Demo%20project%20for%20Spring%20Boot&packageName=com.example.hellospring&dependencies=web,cloud-eureka,actuator,cloud-config-client
На рисунке ниже показан рекомендованный Spring Initializr, настроенный для этого примера проекта.
В этом примере используется версия Java 8. Если вы хотите использовать версию Java 11, измените параметр в разделе Метаданные проекта.
Щелкните Создать, если все зависимости заданы.
Загрузите и распакуйте пакет, а затем создайте веб-контроллер для веб-приложения. Добавьте src/main/java/com/example/hellospring/HelloController.java со следующим содержимым:
package com.example.hellospring; import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RequestMapping; @RestController public class HelloController { @RequestMapping("/") public String index() { return "Greetings from Azure Spring Apps!"; } }
Локальное создание приложений для Spring
Чтобы создать проект с помощью Maven, выполните следующие команды:
cd hellospring
mvn clean package -DskipTests -Denv=cloud
Компиляция проекта занимает несколько минут. По завершении у вас должны быть отдельные JAR-файлы для каждой службы в соответствующих папках.
Подготовка экземпляра Azure Spring Apps
Следующая процедура создает экземпляр Azure Spring Apps с помощью портала Azure.
На новой вкладке откройте портал Azure.
В поле поиска вверху введите Azure Spring Apps.
Выберите пункт Azure Spring Apps в списке результатов.
На странице Azure Spring Apps выберите Создать.
Заполните форму на странице Создание Azure Spring Apps. Ознакомьтесь со следующими рекомендациями:
- Подписка: выберите подписку, которую вы хотите заставить за этот ресурс.
- Группа ресурсов. Создание групп ресурсов для новых ресурсов — это рекомендация. Это имя группы ресурсов будет использоваться в последующих шагах в качестве <имени группы ресурсов>.
- Сведения о службе или ее название. Укажите <имя экземпляра службы>. Его длина должна быть от 4 до 32 знаков. Имя может содержать только строчные буквы, цифры и дефисы. Первым символом в имени службы должна быть буква, а последним — буква или цифра.
- Расположение. Выберите регион для экземпляра службы.
Выберите Просмотр и создание.
Создание конфигураций и развертывание в Azure Spring Apps
Чтобы создать конфигурации и развернуть приложение, выполните следующие действия.
Выполните следующую команду из корневой папки hellospring, где находится POM-файл. Если вы уже выполнили вход с помощью Azure CLI, команда автоматически использует учетные данные. В противном случае команда предложит вам выполнить инструкции по входу. Дополнительные сведения см. разделе Проверка подлинности репозитория azure-maven-plugins.
mvn com.microsoft.azure:azure-spring-apps-maven-plugin:1.10.0:config
Вам будет предложено выбрать следующее:
- ИД подписки — это ваша подписка, используемая для создания экземпляра Azure Spring Apps.
- Экземпляр службы — имя вашего экземпляра Azure Spring Apps.
- Имя приложения — выбранное вами имя приложения (либо можно использовать значение по умолчанию
artifactId
). - Общедоступная конечная точка - значение true, чтобы предоставить приложению открытый доступ; в противном случае — значение false.
Убедитесь, что элемент
appName
в POM-файле имеет правильное значение. Соответствующая часть POM-файла должна выглядеть примерно так, как показано в следующем примере.<build> <plugins> <plugin> <groupId>com.microsoft.azure</groupId> <artifactId>azure-spring-apps-maven-plugin</artifactId> <version>1.10.0</version> <configuration> <subscriptionId>xxxxxxxxx-xxxx-xxxx-xxxxxxxxxxxx</subscriptionId> <clusterName>v-spr-cld</clusterName> <appName>hellospring</appName>
Теперь POM-файл содержит зависимости и конфигурации подключаемого модуля.
Разверните приложение с помощью следующей команды.
mvn azure-spring-apps:deploy
Проверка служб
По завершении развертывания приложение будет доступно по адресу https://<service instance name>-hellospring.azuremicroservices.io/
.
Очистка ресурсов
Если вы планируете продолжить работу с примером приложения, эти ресурсы можно не удалять. Если приложение больше не требуется, удалите группу ресурсов, содержащую экземпляр Azure Spring Apps. Чтобы удалить группу ресурсов с помощью Azure CLI, используйте следующие команды:
echo "Enter the Resource Group name:" &&
read resourceGroupName &&
az group delete --name $resourceGroupName &&
echo "Press [ENTER] to continue ..."