Поделиться через


Краткое руководство. Создание и развертывание приложений в Azure Spring Apps

Note

Планы "Базовый", "Стандартный" и "Корпоративный" вступили в пенсионный период 17 марта 2025 года. Дополнительные сведения см. в объявлении о выходе на пенсию в Azure Spring Apps.

Эта статья относится к:✅ Basic/Standard ❎ Enterprise

В этом кратком руководстве объясняется, как создавать и развертывать приложения Spring в Azure Spring Apps с помощью Azure CLI.

Prerequisites

Скачивание примера приложения

Чтобы скачать пример приложения, выполните следующие действия. Если вы использовали Azure Cloud Shell, перейдите в локальную командную строку.

  1. Создайте новую папку и клонируйте пример репозитория приложений.

    mkdir source-code
    
    cd source-code
    
    git clone https://github.com/Azure-Samples/azure-spring-apps-samples
    
  2. Перейдите в каталог репозитория.

    cd azure-spring-apps-samples
    

Развернуть PlanetWeatherProvider

Чтобы развернуть проект PlanetWeatherProvider, выполните следующие действия.

  1. Создайте приложение для проекта 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"
      }
    }
    

    Эта команда может выполниться в течение нескольких минут.

  2. Измените каталог в папку проекта PlanetWeatherProvider .

    cd steeltoe-sample/src/planet-weather-provider
    
  3. Создайте файлы бинарного кода и файл .zip для развертывания.

    dotnet publish -c release -o ./publish
    

    Tip

    Файл проекта содержит следующий XML-файл для упаковки двоичных файлов в файл.zip после их записи в папку ./publish :

    <Target Name="Publish-Zip" AfterTargets="Publish">
      <ZipDirectory SourceDirectory="$(PublishDir)" DestinationFile="$(MSBuildProjectDirectory)/publish-deploy-planet.zip" Overwrite="true" />
    </Target>
    
  4. Разверните проект в 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, выполните следующие действия.

  1. Создайте другое приложение в экземпляре Azure Spring Apps для проекта.

    az spring app create --name solar-system-weather --runtime-version NetCore_31
    

    solar-system-weather — это имя, указанное в SolarSystemWeather файлеappsettings.json проекта.

    Эта команда может выполниться в течение нескольких минут.

  2. Перейдите в каталог SolarSystemWeather проекта.

    cd ../solar-system-weather
    
  3. Создайте двоичные файлы и .zip файл для развертывания.

    dotnet publish -c release -o ./publish
    
  4. Разверните проект в 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 .

  1. Выполните следующую команду, чтобы назначить конечную точку.

    az spring app update --name solar-system-weather --assign-endpoint true
    
  2. Выполните следующую команду, чтобы получить 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. Например: 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. В этой статье описывается каждая альтернатива.

Prerequisites

Локальное создание приложений для 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 с помощью интерфейса командной строки.

  1. Если вы не выполняли приведенные ниже команды в предыдущих кратких руководствах, выполните их, чтобы задать значения по умолчанию CLI.

    az configure --defaults group=<resource-group-name> spring=<service-name>
    
  2. Создайте два основных приложения 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
    
  3. Разверните 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"
    
  4. Запросите состояние приложения после развертываний с помощью следующей команды.

    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.

Снимок экрана: пример приложения PetClinic, на котором показана страница

Tip

Для диагностики развертываний можно использовать следующую команду, чтобы получать потоковую передачу журналов в режиме реального времени при запуске приложения 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 ..."

Дальнейшие шаги