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


Настройка промежуточной среды в Azure Spring Apps

Примечание.

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

Стандартный план потребления и выделенного плана будет устарел с 30 сентября 2024 г. с полным завершением работы после шести месяцев. Рекомендуется перейти в приложения контейнеров Azure. Дополнительные сведения см. в статье "Миграция потребления Azure Spring Apps Standard" и выделенного плана в приложения контейнеров Azure.

Эта статья применима к: ✔️ Java ❌ C#

Эта статья относится к:❌ Basic ✔️ Standard ✔️ Enterprise

В этой статье объясняется, как настроить промежуточное развертывание с помощью стратегии сине-зеленого развертывания в Azure Spring Apps. Сине-зеленое развертывание — это шаблон непрерывной поставки Azure DevOps, который предполагает сохранение существующей (синей) версии при развертывании новой (зеленой). В этой статье мы покажем вам, как перевести это промежуточное развертывание в рабочее без непосредственного изменения рабочего развертывания.

Необходимые компоненты

  • Существующий экземпляр Azure Spring Apps в плане "Стандартный".
  • Azure CLI.

В этой статье используется приложение, созданное на основе Spring Initializr. Если вы хотите использовать другое приложение для этого примера, внесите изменения в общедоступную часть приложения, чтобы отличить промежуточное развертывание от рабочего развертывания.

Совет

Azure Cloud Shell — это бесплатная интерактивная оболочка, с помощью которой можно выполнять действия, описанные в этой статье. Она содержит предварительно установленные общие инструменты Azure вместе с новейшими версиями Git, JDK, Maven и Azure CLI. Если вы вошли в свою подписку Azure, запустите экземпляр Cloud Shell. Дополнительные сведения см. в Обзоре Azure Cloud Shell.

Чтобы настроить сине-зеленое развертывание в Azure Spring Apps, следуйте инструкциям в следующих разделах.

Установка расширения Azure CLI

Установите расширение Azure Spring Apps для Azure CLI с помощью следующей команды:

az extension add --name spring

Подготовка приложения и развертываний

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

  1. Создайте код для примера приложения, используя Spring Initializr с этой конфигурацией.

  2. Скачайте код.

  3. Добавьте следующий исходный файл HelloController.java в папку *\src\main\java\com\example\hellospring*:

    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!";
      }
    
    }
    
  4. Выполните сборку JAR-файла:

    mvn clean package -DskipTests
    
  5. Создайте приложение в экземпляре Azure Spring Apps:

    az spring app create \
        --resource-group <resource-group-name> \
        --service <Azure-Spring-Apps-instance-name> \
        --name demo \
        --runtime-version Java_17 \
        --assign-endpoint
    
  6. Разверните приложение в Azure Spring Apps:

    az spring app deploy \
        --resource-group <resource-group-name> \
        --service <Azure-Spring-Apps-instance-name> \
        --name demo \
        --artifact-path target\hellospring-0.0.1-SNAPSHOT.jar
    
  7. Измените код для промежуточного развертывания:

    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! THIS IS THE GREEN DEPLOYMENT";
      }
    
    }
    
  8. Перестройте JAR-файл:

    mvn clean package -DskipTests
    
  9. Создайте зеленое развертывание:

    az spring app deployment create \
        --resource-group <resource-group-name> \
        --service <Azure-Spring-Apps-instance-name> \
        --app demo \
        --name green \
        --runtime-version Java_17 \
        --artifact-path target\hellospring-0.0.1-SNAPSHOT.jar
    

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

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

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

  2. В области навигации откройте область "Приложения" , чтобы просмотреть приложения для экземпляра службы.

    Снимок экрана: панель

  3. Выберите приложение для просмотра сведений.

    Снимок экрана демонстрационного приложения, на котором показана страница обзора с доступными параметрами.

  4. Откройте панель Развертывания, чтобы просмотреть все развертывания приложения. В сетке отображаются как рабочие, так и промежуточные развертывания.

    Снимок экрана, на котором показаны развертывания приложений из списка.

  5. Выберите URL-адрес, чтобы открыть развернутое приложение.

    Снимок экрана: URL-адрес развернутого приложения.

  6. Выберите Рабочее в столбце Состояние, чтобы просмотреть приложение по умолчанию.

    Снимок экрана: URL-адрес приложения по умолчанию.

  7. Выберите Промежуточное в столбце Состояние, чтобы просмотреть промежуточное приложение.

    Снимок экрана: URL-адрес промежуточного приложения.

Совет

Убедитесь, что тестовая конечная точка заканчивается косой чертой (/), чтобы убедиться, что CSS-файл загружен правильно. Если в браузере для просмотра страницы требуется ввести учетные данные, используйте параметр Декодировать в URL-адресе для декодирования тестовой конечной точки. Декодирование URL-адресов возвращает URL-адрес в формате https://\<username>:\<password>@\<cluster-name>.test.azuremicroservices.io/demo/green. Используйте его для доступа к конечной точке. Если вы хотите отключить базовую проверку подлинности для тестовой конечной точки, выполните следующую команду Azure CLI: az spring app update --resource-group <resource-group-name> --service <Azure-Spring-Apps-instance-name> --name demo --disable-test-endpoint-auth true

Примечание.

Параметры сервера конфигурации применяются как к промежуточной, так и рабочей среде. Например, если задать путь контекста (server.servlet.context-path) для демонстрации приложения на сервере конфигурации в качестве некоторого пути, путь к зеленому развертыванию изменяется https://\<username>:\<password>@\<cluster-name>.test.azuremicroservices.io/demo/green/somepath/....

Если вы посещаете демонстрацию общедоступного приложения на этом этапе, вы увидите старую страницу без нового изменения.

Установка зеленого развертывания в качестве рабочей среды

  1. После проверки изменений в промежуточной среде вы можете переместить их в рабочую среду. На странице Приложения>Развертывания выберите приложение, которое в настоящее время находится в Рабочей среде.

  2. Выберите многоточие после Состояние регистрации зеленого развертывания, а затем выберите Установить как рабочую среду.

    Снимок экрана, на котором показаны параметры для настройки промежуточной сборки в рабочей среде.

  3. Убедитесь, что в URL-адресе приложения отображаются изменения.

    Снимок экрана: URL-адрес приложения в рабочей среде.

Примечание.

Когда зеленое развертывание будет установлено в рабочей среде, предыдущее развертывание станет промежуточным.

Изменение промежуточного развертывания

Если вас не устраивают изменения, вы можете изменить код приложения, создать JAR-пакет и отправить его в зеленое развертывание с помощью Azure CLI:

az spring app deploy \
    --resource-group <resource-group-name> \
    --service <service-instance-name> \
    --name demo \
    --deployment green \
    --artifact-path demo.jar

Удаление промежуточного развертывания

Чтобы удалить промежуточное развертывание из портала Azure, перейдите на страницу промежуточного развертывания и нажмите кнопку Удалить.

Или удалите промежуточное развертывание из Azure CLI с помощью следующей команды:

az spring app deployment delete \
    --resource-group <resource-group-name> \
    --service <service-instance-name> \
    --name <staging-deployment-name> \
    --app demo

Следующие шаги