Краткое руководство. Сборка и развертывание приложений в Azure Spring Apps
Примечание.
Планы "Базовый", "Стандартный" и "Корпоративный" будут устарели начиная с середины марта 2025 г. с 3-летнего периода выхода на пенсию. Рекомендуется перейти в приложения контейнеров Azure. Дополнительные сведения см. в объявлении о выходе на пенсию в Azure Spring Apps.
Стандартный план потребления и выделенного плана будет устарел с 30 сентября 2024 г. с полным завершением работы после шести месяцев. Рекомендуется перейти в приложения контейнеров Azure. Дополнительные сведения см. в статье "Миграция потребления Azure Spring Apps Standard" и выделенного плана в приложения контейнеров Azure.
Эта статья относится к:✅ Basic/Standard ❎ Enterprise
В этом кратком руководстве объясняется, как создавать и развертывать приложения Spring в Azure Spring Apps с помощью Azure CLI.
Необходимые компоненты
- Завершение предыдущих кратких руководств в этой серии:
- Подготовка экземпляра службы Azure Spring Apps.
- Настройте сервер конфигурации Azure Spring Apps.
загрузка примера приложения;
Чтобы скачать пример приложения, выполните следующие действия. Если вы использовали Azure Cloud Shell, перейдите в локальную командную строку.
Создайте папку и клонируйте пример репозитория приложения.
mkdir source-code
cd source-code
git clone https://github.com/Azure-Samples/azure-spring-apps-samples
Перейдите в каталог репозитория.
cd azure-spring-apps-samples
Развертывание PlanetWeatherProvider
Чтобы развернуть проект PlanetWeatherProvider, выполните следующие действия.
Создайте приложение для проекта в экземпляре
PlanetWeatherProvider
Azure Spring Apps.az spring app create --name planet-weather-provider --runtime-version NetCore_31
Чтобы включить автоматическую регистрацию службы, вы предоставили приложению то же имя, что и значение
spring.application.name
в файле appsettings.json проекта:"spring": { "application": { "name": "planet-weather-provider" } }
Выполнение этой команды может занять несколько минут.
Перейдите в папку проекта
PlanetWeatherProvider
.cd steeltoe-sample/src/planet-weather-provider
Создайте двоичные файлы и ZIP-файл для развертывания.
dotnet publish -c release -o ./publish
Совет
После записи двоичных файлов в папку ./publish файл проекта будет содержать следующий XML для упаковки двоичных файлов в ZIP-файл:
<Target Name="Publish-Zip" AfterTargets="Publish"> <ZipDirectory SourceDirectory="$(PublishDir)" DestinationFile="$(MSBuildProjectDirectory)/publish-deploy-planet.zip" Overwrite="true" /> </Target>
Разверните проект в Azure.
Перед выполнением следующей команды убедитесь, что командная строка открыта в папке проекта.
az spring app deploy \ --name planet-weather-provider \ --runtime-version NetCore_31 \ --main-entry Microsoft.Azure.SpringCloud.Sample.PlanetWeatherProvider.dll \ --artifact-path ./publish-deploy-planet.zip
Параметр
--main-entry
задает относительный путь от корневой папки ZIP-файла к DLL-файлу, который содержит точку входа приложения. После отправки .zip-файла служба извлекает все файлы и папки, а затем пытается выполнить точку входа в указанном файле .dll .Выполнение этой команды может занять несколько минут.
Развертывание SolarSystemWeather
Чтобы развернуть проект SolarSystemWeather, выполните следующие действия.
Создайте другое приложение в экземпляре Azure Spring Apps для проекта.
az spring app create --name solar-system-weather --runtime-version NetCore_31
solar-system-weather
— это имя, указанное в файле appsettings.json проектаSolarSystemWeather
.Выполнение этой команды может занять несколько минут.
Перейдите в каталог проекта
SolarSystemWeather
.cd ../solar-system-weather
Создайте двоичные файлы и ZIP-файл для развертывания.
dotnet publish -c release -o ./publish
Разверните проект в Azure.
az spring app deploy \ --name solar-system-weather \ --runtime-version NetCore_31 \ --main-entry Microsoft.Azure.SpringCloud.Sample.SolarSystemWeather.dll \ --artifact-path ./publish-deploy-solar.zip
Выполнение этой команды может занять несколько минут.
Назначение общедоступной конечной точки
Перед тестированием приложения получите общедоступную конечную точку для HTTP-запроса GET к приложению solar-system-weather
.
Выполните следующую команду, чтобы назначить конечную точку.
az spring app update --name solar-system-weather --assign-endpoint true
Выполните следующую команду, чтобы получить URL-адрес конечной точки.
Windows:
az spring app show --name solar-system-weather --output table
Linux:
az spring app show --name solar-system-weather | grep url
Тестирование приложения
Чтобы протестировать приложение, отправьте запрос GET в solar-system-weather
приложение. В браузере перейдите к общедоступному URL-адресу с /weatherforecast
добавленным к нему URL-адресом. Например: https://servicename-solar-system-weather.azuremicroservices.io/weatherforecast
Выходные данные — JSON-файл:
[{"Key":"Mercury","Value":"very warm"},{"Key":"Venus","Value":"quite unpleasant"},{"Key":"Mars","Value":"very cool"},{"Key":"Saturn","Value":"a little bit sandy"}]
Из этого вывода следует, что работают оба приложения для Spring. Приложение SolarSystemWeather
возвращает данные, полученные из приложения PlanetWeatherProvider
.
В этой статье объясняется, как создавать и развертывать приложения Spring в Azure Spring Apps. Вы можете использовать Azure CLI, подключаемый модуль Maven или Intellij. В этой статье описывается каждая альтернатива.
Необходимые компоненты
- Завершение предыдущих кратких руководств в этой серии:
- Подготовка экземпляра службы Azure Spring Apps.
- Настройте сервер конфигурации Azure Spring Apps.
- JDK 17
- Maven 3.0 или более поздней версии;
- Подписка Azure. Если у вас еще нет подписки, создайте бесплатную учетную запись Azure, прежде чем начинать работу.
- При необходимости Azure CLI версии 2.45.0 или более поздней. Установите расширение Azure Spring Apps со следующей командой:
az extension add --name spring
- При необходимости набор средств Azure для IntelliJ.
Локальное создание приложений для Spring
Используйте следующие команды, чтобы клонировать пример репозитория, перейти к папке образца, а затем создать проект.
git clone https://github.com/azure-samples/spring-petclinic-microservices
cd spring-petclinic-microservices
mvn clean package -DskipTests -Denv=cloud
Компиляция проекта занимает 5–10 минут. При компиляции проекта необходимо иметь отдельные JAR-файлы для каждой службы в соответствующих папках.
Создание и развертывание приложений в Azure Spring Apps
Выполните следующие действия, чтобы создать и развернуть приложения в Azure Spring Apps с помощью интерфейса командной строки.
Если вы не выполняли приведенные ниже команды в предыдущих кратких руководствах, выполните их, чтобы задать значения по умолчанию CLI.
az configure --defaults group=<resource-group-name> spring=<service-name>
Создайте два основных приложения Spring для PetClinic:
api-gateway
иcustomers-service
.az spring app create \ --name api-gateway \ --runtime-version Java_17 \ --instance-count 1 \ --memory 2Gi \ --assign-endpoint az spring app create \ --name customers-service \ --runtime-version Java_17 \ --instance-count 1 \ --memory 2Gi
Разверните JAR-файлы, созданные на предыдущем шаге.
az spring app deploy \ --name api-gateway \ --artifact-path spring-petclinic-api-gateway/target/api-gateway-3.0.1.jar \ --jvm-options="-Xms2048m -Xmx2048m" az spring app deploy \ --name customers-service \ --artifact-path spring-petclinic-customers-service/target/customers-service-3.0.1.jar \ --jvm-options="-Xms2048m -Xmx2048m"
Запросите состояние приложения после развертываний с помощью следующей команды.
az spring app list --output table
Выходные данные этой команды выглядят примерно так:
Name Location ResourceGroup Production Deployment Public Url Provisioning Status CPU Memory Running Instance Registered Instance Persistent Storage ----------------- ---------- --------------- ----------------------- --------------------------------------------------- --------------------- ----- -------- ------------------ --------------------- -------------------- api-gateway eastus xxxxxx-sp default https://<service name>-api-gateway.azuremicroservices.io Succeeded 1 2 1/1 1/1 - customers-service eastus <service name> default Succeeded 1 2 1/1 1/1 -
Проверка служб
Доступ api-gateway
и customers-service
из браузера с общедоступным URL-адресом, показанным ранее, в формате https://<service name>-api-gateway.azuremicroservices.io
.
Совет
Чтобы устранить неполадки с развертываниями, можно использовать следующую команду для получения журналов потоковой передачи в реальном времени при каждом выполнении az spring app logs --name <app name> --follow
приложением.
Развертывание дополнительных приложений
Чтобы получить приложение PetClinic, работающее со всеми функциями, такими как сервер администрирования, визиты и ветеринары, разверните другие приложения со следующими командами:
az spring app create \
--name admin-server \
--runtime-version Java_17 \
--instance-count 1 \
--memory 2Gi \
--assign-endpoint
az spring app create \
--name vets-service \
--runtime-version Java_17 \
--instance-count 1 \
--memory 2Gi
az spring app create \
--name visits-service \
--runtime-version Java_17 \
--instance-count 1 \
--memory 2Gi
az spring app deploy \
--name admin-server \
--runtime-version Java_17 \
--artifact-path spring-petclinic-admin-server/target/admin-server-3.0.1.jar \
--jvm-options="-Xms1536m -Xmx1536m"
az spring app deploy \
--name vets-service \
--runtime-version Java_17 \
--artifact-path spring-petclinic-vets-service/target/vets-service-3.0.1.jar \
--jvm-options="-Xms1536m -Xmx1536m"
az spring app deploy \
--name visits-service \
--runtime-version Java_17 \
--artifact-path spring-petclinic-visits-service/target/visits-service-3.0.1.jar \
--jvm-options="-Xms1536m -Xmx1536m"
Очистка ресурсов
Если вы планируете продолжить работу с последующими краткими руководствами и статьями, эти ресурсы можно не удалять. Удалите ненужную группу ресурсов. Ресурсы в ней будут также удалены. Чтобы удалить группу ресурсов с помощью Azure CLI, используйте следующие команды:
echo "Enter the Resource Group name:" &&
read resourceGroupName &&
az group delete --name $resourceGroupName &&
echo "Press [ENTER] to continue ..."