Развертывание многолотных приложений в плане Azure Spring Apps Enterprise

Примечание.

Azure Spring Apps — это новое название службы Azure Spring Cloud. Старое название будет еще некоторое время встречаться в наших материалах, пока мы не обновим ресурсы, такие как снимки экрана, видео и схемы.

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

В этой статье показано, как развертывать приложения polyglot в плане Azure Spring Apps Enterprise и как эти приложения polyglot могут использовать функции службы сборки, предоставляемые пакетами сборок.

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

Развертывание приложений polyglot в экземпляре службы

Этот раздел относится к созданию и развертыванию приложений polyglot при включении службы сборки. Если отключить службу сборки, можно развертывать приложения только с помощью пользовательского образа контейнера. Вы можете создать собственный образ или использовать его, созданный экземпляром Azure Spring Apps Enterprise. Дополнительные сведения см. в статье "Развертывание приложения с помощью пользовательского образа контейнера".

Управление построителями

При создании экземпляра Azure Spring Apps Enterprise необходимо выбрать построитель по умолчанию из одного из следующих поддерживаемых пакетов сборок семейства языков:

Дополнительные сведения см. в разделе "Сборки семейства языков" для VMware Tanzu.

Эти пакеты сборки поддерживают создание исходного кода или артефактов для Java, .NET Core, Go, статических веб-файлов, Node.js и приложений Python. При создании или просмотре построителя также отображаются версии buildpack. И вы можете создать пользовательский построитель, указав пакеты сборки и стек.

Все построители, настроенные в экземпляре службы Azure Spring Apps, перечислены на странице "Служба сборки", как показано на следующем снимке экрана:

Снимок экрана: портал Azure, на котором показана страница

Нажмите кнопку Add (Добавить), чтобы создать новую группу. На следующем снимку экрана показаны ресурсы, которые следует использовать для создания пользовательского построителя. Стек ОС включает Bionic Base, Bionic Full, Jammy TinyJammy Baseи Jammy Full. Бионик основан на Ubuntu 18.04 (Bionic Beaver) , и Джеймми основан на Ubuntu 22.04 (Jammy Jellyfish). Дополнительные сведения см. в разделе рекомендаций по стеку ОС.

Рекомендуется Jammy OS Stack создать построитель, так как VMware не Bionic OS Stackрекомендуется.

Снимок экрана: портал Azure, на котором показана страница добавления построителя с выделенным именем стека ОС и выбранным именем buildpack.

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

Снимок экрана: портал Azure, на котором показана страница

Построитель — это ресурс, который постоянно способствует развертыванию. Он предоставляет последние образы среды выполнения и последние пакеты сборки.

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

  1. Сохраните конфигурацию в качестве нового построителя.
  2. Развертывание приложений с помощью нового построителя. Развертывания связаны с новым построителем.
  3. Перенос развертываний в предыдущем построителе в новый построитель.
  4. Удалите исходный построитель.

Рекомендации по стеку ОС

В Azure Spring Apps рекомендуется Jammy OS Stack создать построителя, так как Bioinic OS Stack он находится в очереди для отмены VMware. В следующем списке описаны доступные параметры:

  • Jammy Tiny: Подходит для создания минимального изображения для наименьшего возможного размера и безопасности. Как и создание собственного образа Java, он может уменьшить окончательный образ контейнера. Интегрированные библиотеки ограничены. Например, вы не можете подключиться к экземпляру приложения для устранения неполадок , так как нет shell библиотеки.

    • Большинство приложений Go.
    • Приложения Java. Некоторые параметры конфигурации Apache Tomcat, такие как настройка bin/setenv.sh, недоступны, так как Tiny не имеет оболочки.
  • Jammy Base: подходит для большинства приложений без собственных расширений.

    • Приложения Java и приложения .NET Core.
    • Перейдите к приложениям, которым требуются некоторые библиотеки C.
    • Node.js, приложения Python или веб-серверы без собственных расширений.
  • Jammy Full: включает большинство библиотек и подходит для приложений с собственными расширениями. Например, он включает более полную библиотеку шрифтов. Если приложение использует собственное расширение, используйте Full стек.

    • Node.js или приложения Python с собственными расширениями.

Дополнительные сведения см . в документации по Ubuntu Stacks .

Управление реестром контейнеров

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

После включения реестра контейнеров пользователя со службой сборки можно отобразить и настроить реестр с помощью портал Azure или Azure CLI.

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

  1. Откройте портал Azure.

  2. Выберите реестр контейнеров в области навигации.

  3. Нажмите кнопку "Добавить ", чтобы создать реестр контейнеров.

    Снимок экрана: портал Azure, на котором показана страница реестра контейнеров с кнопкой

  4. Для реестра контейнеров нажмите кнопку с многоточием (...), а затем нажмите кнопку "Изменить ", чтобы просмотреть конфигурацию реестра.

    Снимок экрана: портал Azure, на котором показана страница реестра контейнеров.

  5. Просмотрите значения на странице "Изменение реестра контейнеров".

    Снимок экрана: портал Azure, на котором показана страница реестра контейнеров с открытой областью

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

    Снимок экрана: портал Azure, на котором показана страница реестра контейнеров с открытой областью

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

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

  1. Откройте портал Azure.

  2. Выберите "Сборка службы " в области навигации.

  3. Выберите реестр контейнеров, на который ссылается ссылка, чтобы обновить реестр контейнеров для службы сборки.

    Снимок экрана: портал Azure, на котором показана страница

Создание и развертывание приложений polyglot

Вы можете создавать и развертывать приложения polyglot следующими способами с помощью реестра контейнеров:

  • Для службы сборки с помощью управляемого реестра контейнеров Azure Spring Apps можно создать приложение на образ, а затем развернуть его в текущем экземпляре службы Azure Spring Apps. Сборка и развертывание выполняются вместе с помощью az spring app deploy команды.

  • Для службы сборки с помощью реестра контейнеров, управляемого пользователем, можно создать приложение в образ контейнера, а затем развернуть образ в текущем экземпляре Azure Spring Apps Enterprise и других экземплярах. Команды сборки и развертывания разделены. Вы можете использовать команду сборки для создания или обновления сборки, а затем использовать команду развертывания для развертывания образа контейнера в экземпляре службы.

Дополнительные сведения см. в разделе "Служба сборки по запросу" в разделе Use Tanzu Build Service.

В следующих примерах показаны некоторые полезные команды сборки для использования.

az configure --defaults group=<resource-group-name> spring=<service-name>

az spring build-service build list
az spring build-service build show --name <build-name>
az spring build-service build create --name <build-name> --artifact-path <artifact-path>
az spring build-service build update --name <build-name> --artifact-path <artifact-path>
az spring build-service build delete --name <build-name>

В следующих примерах Azure CLI показано создание и развертывание файла артефакта для двух сценариев реестра контейнеров:

  • Управляемый реестр контейнеров Azure Spring Apps.
  • Реестр контейнеров, управляемый пользователем.

В этом примере выполняется сборка и развертывание в одной команде. Следующая команда указывает построителя для создания приложения на образ контейнера, а затем развертывает приложение непосредственно в экземпляре службы Azure Springs Apps Enterprise.

Если не указать построителя, default используется построитель.

az spring app deploy \
    --resource-group <resource-group-name> \
    --service <Azure-Spring-Apps-instance-name> \
    --name <app-name> \
    --builder <builder-name> \
    --artifact-path <path-to-your-JAR-file>

При развертывании приложения с файлом артефакта используйте --artifact-path для указания пути к файлу. КАК JAR-файлы, так и WAR допустимы.

Если Azure CLI обнаруживает пакет WAR как тонкий JAR-файл, используйте --disable-validation для отключения проверки.

В следующем примере папка исходного кода развертывается в активном развертывании с помощью --source-path параметра для указания папки.

az spring app deploy \
    --resource-group <resource-group-name> \
    --service <Azure-Spring-Apps-instance-name> \
    --name <app-name> \
    --builder <builder-name> \
    --source-path <path-to-source-code>

Вы также можете настроить среду сборки для создания приложения. Например, в приложении Java можно указать версию JDK с помощью среды сборки BP_JVM_VERSION .

Чтобы указать среды сборки, используйте --build-env, как показано в следующем примере. Доступные переменные среды сборки описаны далее в этой статье.

Следующая команда развертывает приложение:

az spring app deploy \
    --resource-group <resource-group-name> \
    --service <Azure-Spring-Apps-instance-name> \
    --name <app-name> \
    --build-env <key1=value1> <key2=value2> \
    --builder <builder-name> \
    --artifact-path <path-to-your-JAR-file>

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

Следующая команда развертывает приложение:

az spring app deploy \
    --resource-group <resource-group-name> \
    --service <Azure-Spring-Apps-instance-name> \
    --name <app-name> \
    --build-env <key1=value1> <key2=value2> \
    --build-cpu <build-cpu-size> \
    --build-memory <build-memory-size> \
    --builder <builder-name> \
    --artifact-path <path-to-your-JAR-file>

Ресурс ЦП и памяти сборки по умолчанию.1 vCPU, 2 Gi Если приложению требуется меньше или больше памяти, используйте --build-memory для указания ресурсов памяти , например, 500Mi, 1Gi2Giи т. д. Если приложению требуется меньшее или большее количество ресурсов ЦП, используйте для --build-cpu указания ресурсов ЦП , например, 500m, 12и т. д. Максимальное ограничение ресурсов ЦП и памяти для сборки .8 vCPU, 16Gi

Ресурсы ЦП и памяти ограничены размером пула агентов службы сборки. Дополнительные сведения см. в разделе пула агентов сборки сборки Use Tanzu Build Service. Сумма квоты ресурсов сборки обработки не может превышать размер пула агентов.

Параллельное число задач сборки зависит от размера пула агентов и каждого ресурса сборки. Например, если ресурс сборки является значением по умолчанию 1 vCPU, 2 Gi , а размер пула агентов равен 6 vCPU, 12 Gi6.

Другие задачи сборки блокируются в течение некоторого времени из-за ограничений квоты ресурсов.

Приложение должно прослушивать порт 8080. Приложения Spring Boot переопределяют SERVER_PORT использование 8080 автоматически.

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

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

Функция Java Python Узел .NET Core Go Static Files Собственный образ Java PHP
Управление жизненным циклом приложений ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️
Назначение конечной точки ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️
Azure Monitor ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️
Готовая интеграция APM ✔️
Развертывание "синий/зеленый" ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️
Личный домен ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️
Масштабирование — автоматическое масштабирование ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️
Масштабирование — масштабирование вручную (вертикальное увеличение/уменьшение, горизонтальное увеличение/уменьшение) ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️
Управляемое удостоверение ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️
Портал API для VMware Tanzu ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️
Spring Cloud Gateway для VMware Tanzu ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️
Служба конфигурации приложений для VMware Tanzu ✔️ ✔️
Реестр служб VMware Tanzu ✔️ ✔️
Представление Приложения Live для VMware Tanzu ✔️ ✔️
Виртуальная сеть ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️
Исходящий IP-адрес ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️
Сквозной протокол TLS ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️
Расширенное устранение неполадок — дамп потока, кучи или JFR ✔️
Использование собственного хранилища ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️
Интеграция привязки службы с соединителем ресурсов ✔️ ✔️
Зона доступности 1 ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️
События жизненного цикла приложения ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️
Уменьшенный размер приложения — 0,5 виртуальных ЦП и 512 МБ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️
Автоматизация развертываний приложений с помощью Terraform и задачи Azure Pipeline ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️
Обратимое удаление ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️
Интерактивный процесс диагностики (на основе AppLens) ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️
SLA ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️
Настройка проб работоспособности ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️
Подключение веб-оболочки для устранения неполадок ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ️ ✔️ ✔️
Удаленная отладка ✔️

Дополнительные сведения о поддерживаемых конфигурациях для разных языковых приложений см. в соответствующем разделе далее в этой статье.

Ограничения на собственные образы Java

Native Image — это технология компиляции кода Java заранее в собственный исполняемый файл. Собственные образы обеспечивают различные преимущества, такие как мгновенное запуск и сокращение потребления памяти. Вы можете упаковыть собственные образы в упрощенный образ контейнера для более быстрого и эффективного развертывания. Из-за оптимизации закрытого мира применяются следующие ограничения :

  • Для следующих функций Java требуется настройка во время сборки исполняемого файла:
    • Загрузка динамического класса
    • Отражение
    • Динамический прокси-сервер
    • JNI (собственный интерфейс Java)
    • Сериализация
  • Байт-код больше недоступен во время выполнения, поэтому отладка и мониторинг с помощью средств, предназначенных для JVMTI, невозможна.

Следующие функции не поддерживаются в Azure Spring Apps из-за ограничения собственного образа Java. Azure Spring Apps будет поддерживать их, когда образ Java Native Image и сообщество преодолеет ограничение.

Функция Почему она не поддерживается
Azure Monitor Встроенные образы GraalVM не поддерживают метрики JVM.
Масштабирование — автомасштабирование Встроенные образы GraalVM не поддерживают метрики JVM.
Внестандартная интеграция APM APM Vendor и Buildpack не поддерживает собственный образ.
Управляемое удостоверение Пакеты SDK Azure не поддерживают собственный образ.
Расширенное устранение неполадок — дамп потока, кучи или JFR Встроенные образы GraalVM не поддерживают дамп потока, кучи или JFR.
Удаленная отладка Собственный образ GraalVM не поддерживает удаленную отладку.
Подключение без пароля с помощью службы Подключение or Пакет SDK для Java Для Azure не поддерживает собственный образ.

Примечание.

В следующих разделах --build-env конфигурации сборки и развертывания языка среда используется на этапе сборки. --env означает, что среда используется на этапе выполнения.

Рекомендуется указать языковую версию в случае изменения версии по умолчанию. Например, используйте для --build-env BP_JVM_VERSION=11.* указания Java 11 в качестве версии JDK. Для других языков можно получить имя переменной среды в следующих описаниях для каждого языка.

Развертывание приложений Java

Пакет buildpack для развертывания приложений Java — tanzu-buildpacks/java-azure.

В следующей таблице перечислены функции, поддерживаемые в Azure Spring Apps:

Описание функции Комментарий Переменная среды Использование
Предоставляет Microsoft OpenJDK. Настраивает версию JVM. Версия JDK по умолчанию — 17. В настоящее время поддерживается JDK 8, 11, 17 и 21. BP_JVM_VERSION --build-env BP_JVM_VERSION=11.*
Среда выполнения env. Указывает, включена ли функция отслеживания памяти Java Native Memory (NMT). Значение по умолчанию — true Не поддерживается в JDK 8. BPL_JAVA_NMT_ENABLED --env BPL_JAVA_NMT_ENABLED=true
Настраивает уровень детализации для выходных данных отслеживания памяти Java Native Memory (NMT). Значение по умолчанию — сводка. Задайте подробные сведения для подробных выходных данных NMT. BPL_JAVA_NMT_LEVEL --env BPL_JAVA_NMT_ENABLED=summary
Добавьте сертификаты ЦС в хранилище доверия системы во время сборки и среды выполнения. Сведения о настройке сертификатов ЦС для сборок и развертываний приложений см. в разделе "Настройка сертификатов интеграции APM и ЦС". Неприменимо Неприменимо
Интеграция с приложением Аналитика, Dynatrace, Elastic, New Relic, агент динамического APM приложения. Узнайте , как настроить интеграцию APM и сертификаты ЦС. Неприменимо Неприменимо
Разверните пакет WAR с помощью Apache Tomcat или TomEE. Задайте используемый сервер приложений. Задайте для tomcat значение Tomcat, чтобы использовать Tomcat и tomee для использования TomEE. Значение по умолчанию — tomcat. BP_JAVA_APP_SERVER --build-env BP_JAVA_APP_SERVER=tomee
Поддержка приложений Spring Boot. Указывает, следует ли вносить поддержку привязок Spring Cloud для образа во время сборки. Значение по умолчанию равно false. BP_SPRING_CLOUD_BINDINGS_DISABLED --build-env BP_SPRING_CLOUD_BINDINGS_DISABLED=false
Указывает, следует ли автоматически настроить свойства среды Spring Boot из привязок во время выполнения. Эта функция требует, чтобы привязки Spring Cloud уже были установлены во время сборки или ничего не делает. Значение по умолчанию равно false. BPL_SPRING_CLOUD_BINDINGS_DISABLED --env BPL_SPRING_CLOUD_BINDINGS_DISABLED=false
Поддержка создания приложений на основе Maven из источника. Используется для проекта с несколькими модулями. Указывает модуль для поиска артефакта приложения. По умолчанию корневой модуль (пустой). BP_MAVEN_BUILT_MODULE --build-env BP_MAVEN_BUILT_MODULE=./gateway
Поддержка создания приложений на основе Gradle из источника. Используется для проекта с несколькими модулями. Указывает модуль для поиска артефакта приложения. По умолчанию корневой модуль (пустой). BP_GRADLE_BUILT_MODULE --build-env BP_GRADLE_BUILT_MODULE=./gateway
Включите конфигурацию меток на созданном образе. Настраивает как указанные OCI метки с короткими именами переменных среды, так и произвольными метками с помощью синтаксиса с разделителями пробелов в одной переменной среды. BP_IMAGE_LABELS
BP_OCI_AUTHORS
Дополнительные переменные среды см. здесь.
--build-env BP_OCI_AUTHORS=<value>
Интеграция агента JProfiler. Указывает, следует ли интегрировать поддержку JProfiler. Значение по умолчанию равно false. BP_JPROFILER_ENABLED Этап сборки:
--build-env BP_JPROFILER_ENABLED=true
Этап выполнения:
--env BPL_JPROFILER_ENABLED=true
BPL_JPROFILER_PORT=<port> (необязательно, по умолчанию — 8849)
BPL_JPROFILER_NOWAIT=true (необязательно. Указывает, выполняется ли JVM перед присоединением JProfiler. Значение по умолчанию — true.)
Указывает, следует ли включить поддержку JProfiler во время выполнения. Значение по умолчанию равно false. BPL_JPROFILER_ENABLED --env BPL_JPROFILER_ENABLED=false
Указывает, какой порт прослушивает агент JProfiler. Значение по умолчанию — 8849. BPL_JPROFILER_PORT --env BPL_JPROFILER_PORT=8849
Указывает, выполняется ли JVM перед присоединением JProfiler. Значение по умолчанию — true BPL_JPROFILER_NOWAIT --env BPL_JPROFILER_NOWAIT=true
Интеграция агента JRebel . Приложение должно содержать файл rebel-remote.xml . Неприменимо Неприменимо
AES шифрует приложение во время сборки, а затем расшифровывает его во время запуска. Ключ AES, используемый во время сборки. BP_EAR_KEY --build-env BP_EAR_KEY=<value>
Ключ AES, используемый во время выполнения. BPL_EAR_KEY --env BPL_EAR_KEY=<value>
Интеграция агента AspectJ Weaver . <APPLICATION_ROOT>/ aop.xml существует и есть аспект-weaver.*.jar. Неприменимо Неприменимо

Развертывание приложений .NET

Пакет buildpack для развертывания приложений .NET — tanzu-buildpacks/dotnet-core.

В следующей таблице перечислены функции, поддерживаемые в Azure Spring Apps:

Описание функции Комментарий Переменная среды Использование
Настройте версию среды выполнения .NET Core. Поддерживает Net6.0, Net7.0 и Net8.0.
Можно настроить с помощью файла проекта runtimeconfig.json или MSBuild.
Среда выполнения по умолчанию — 6.0.*.
Неприменимо Неприменимо
Добавьте сертификаты ЦС в хранилище доверия системы во время сборки и среды выполнения. Сведения о настройке сертификатов ЦС для сборок и развертываний приложений см. в разделе "Настройка сертификатов интеграции APM и ЦС". Неприменимо Неприменимо
Интеграция с агентами Dynatrace и New Relic APM. Узнайте , как настроить интеграцию APM и сертификаты ЦС. Неприменимо Неприменимо
Включите конфигурацию меток на созданном образе. Настраивает как указанные OCI метки с короткими именами переменных среды, так и произвольными метками с помощью синтаксиса с разделителями пробелов в одной переменной среды. BP_IMAGE_LABELS
BP_OCI_AUTHORS
Дополнительные переменные среды см. здесь.
--build-env BP_OCI_AUTHORS=<value>

Развертывание приложений Python

Пакет buildpack для развертывания приложений Python — tanzu-buildpacks/python.

В следующей таблице перечислены функции, поддерживаемые в Azure Spring Apps:

Описание функции Комментарий Переменная среды Использование
Укажите версию Python. Поддерживает 3.8.*, 3.9.*, 3.10.*, 3.11.*, 3.12.*. Значение по умолчанию — 3.10.*
Вы можете указать версию с помощью переменной BP_CPYTHON_VERSION среды во время сборки.
BP_CPYTHON_VERSION --build-env BP_CPYTHON_VERSION=3.8.*
Добавьте сертификаты ЦС в хранилище доверия системы во время сборки и среды выполнения. Сведения о настройке сертификатов ЦС для сборок и развертываний приложений см. в разделе "Настройка сертификатов интеграции APM и ЦС". Неприменимо Неприменимо
Включите конфигурацию меток на созданном образе. Настраивает как указанные OCI метки с короткими именами переменных среды, так и произвольными метками с помощью синтаксиса с разделителями пробелов в одной переменной среды. BP_IMAGE_LABELS
BP_OCI_AUTHORS
Дополнительные переменные среды см. здесь.
--build-env BP_OCI_AUTHORS=<value>

Развертывание приложений Go

Пакет buildpack для развертывания приложений Go — tanzu-buildpacks/go.

В следующей таблице перечислены функции, поддерживаемые в Azure Spring Apps:

Описание функции Комментарий Переменная среды Использование
Укажите версию Go. Поддерживает 1.20.*, 1.21.*. Значение по умолчанию — 1.20.*.
Версия Go автоматически обнаруживается из файла go.mod приложения. Эту версию можно переопределить, задав BP_GO_VERSION переменную среды во время сборки.
BP_GO_VERSION --build-env BP_GO_VERSION=1.20.*
Настройте несколько целевых объектов. Задает несколько целевых объектов для сборки Go. BP_GO_TARGETS --build-env BP_GO_TARGETS=./some-target:./other-target
Добавьте сертификаты ЦС в хранилище доверия системы во время сборки и среды выполнения. Сведения о настройке сертификатов ЦС для сборок и развертываний приложений см. в разделе "Настройка сертификатов интеграции APM и ЦС". Неприменимо Неприменимо
Интеграция с агентом APM Dynatrace. Узнайте , как настроить интеграцию APM и сертификаты ЦС. Неприменимо Неприменимо
Включите конфигурацию меток на созданном образе. Настраивает как указанные OCI метки с короткими именами переменных среды, так и произвольными метками с помощью синтаксиса с разделителями пробелов в одной переменной среды. BP_IMAGE_LABELS
BP_OCI_AUTHORS
Дополнительные переменные среды см. здесь.
--build-env BP_OCI_AUTHORS=<value>

Развертывание приложений Node.js

Пакет buildpack для развертывания Node.js приложений — tanzu-buildpacks/nodejs.

В следующей таблице перечислены функции, поддерживаемые в Azure Spring Apps:

Описание функции Комментарий Переменная среды Использование
Укажите версию узла. Поддерживает 16.*, 18.*, 19.*, 20.*. Значение по умолчанию — 20.*.
Версию узла можно указать с помощью файла Nvmrc или node-version в корневом каталоге приложения. BP_NODE_VERSION переопределяет параметры.
BP_NODE_VERSION --build-env BP_NODE_VERSION=19.*
Добавьте сертификаты ЦС в хранилище доверия системы во время сборки и среды выполнения. Сведения о настройке сертификатов ЦС для сборок и развертываний приложений см. в разделе "Настройка сертификатов интеграции APM и ЦС". Неприменимо Неприменимо
Интеграция с Dynatrace, Elastic, New Relic, агентом Динамического APM приложения. Узнайте , как настроить интеграцию APM и сертификаты ЦС. Неприменимо Неприменимо
Включите конфигурацию меток на созданном образе. Настраивает как указанные OCI метки с короткими именами переменных среды, так и произвольными метками с помощью синтаксиса с разделителями пробелов в одной переменной среды. BP_IMAGE_LABELS
BP_OCI_AUTHORS
Дополнительные переменные среды см. здесь.
--build-env BP_OCI_AUTHORS=<value>
Разверните приложение Angular с помощью Сервера разработки Angular Live. Укажите узел перед запуском ng serveв package.json: ng serve --host 0.0.0.0 --port 8080 --public-host <your application domain name> Доменное имя приложения доступно на странице обзора приложения в разделе URL-адреса. Удалите протокол https:// перед продолжением. BP_NODE_RUN_SCRIPTS
NODE_ENV
--build-env BP_NODE_RUN_SCRIPTS=build NODE_ENV=development

Развертывание приложений WebServer

Пакет сборки для развертывания приложений WebServer — tanzu-buildpacks/web-servers.

Дополнительные сведения см. в разделе "Развертывание статических веб-файлов".

Развертывание приложений машинного образа Java (предварительная версия)

Пакет buildpack для развертывания приложений машинного образа Java — tanzu-buildpacks/java-native-image.

Вы можете развернуть собственные приложения образов Spring Boot с помощью пакета сборки tanzu-buildpacks/java-native-image . Spring Native поддерживает компиляцию приложений Spring Boot в собственные исполняемые файлы. Пакет buildpack использует пакет образов Liberica Native Image Kit (NIK) для создания собственных образов приложений Spring Boot, и эти приложения полностью поддерживаются.

При создании собственного образа Java необходимо задать среду BP_NATIVE_IMAGEtrue сборки и ресурс памяти сборки не должен быть меньше 8Gi. Размер пула агента службы сборки не должен быть меньше 4 vCPU, 8 Gi. Дополнительные сведения см. в разделе пула агентов сборки сборки Use Tanzu Build Service.

Если вы хотите создать собственный образ в образ контейнера меньшего размера, рекомендуется использовать построитель с стеком Jammy Tiny ОС. Дополнительные сведения см. в разделе рекомендаций по стеку ОС.

В следующей таблице перечислены функции, поддерживаемые в Azure Spring Apps:

Описание функции Комментарий Переменная среды Использование
Интеграция с Bellsoft OpenJDK. Настраивает версию JDK. В настоящее время поддерживается: JDK 8, 11, 17 и 20. BP_JVM_VERSION --build-env BP_JVM_VERSION=17
Настройте аргументы для native-image команды. Аргументы для передачи непосредственно команде native-image. Эти аргументы должны быть допустимыми и правильно сформированными, или команда машинного образа завершается ошибкой. BP_NATIVE_IMAGE_BUILD_ARGUMENTS --build-env BP_NATIVE_IMAGE_BUILD_ARGUMENTS="--no-fallback"
Добавьте сертификаты ЦС в хранилище доверия системы во время сборки и среды выполнения. Узнайте , как настроить интеграцию APM и сертификаты ЦС. Неприменимо. Неприменимо.
Включение конфигурации меток на созданном образе Настраивает как указанные OCI метки с короткими именами переменных среды, так и произвольными метками с помощью синтаксиса с разделителями пробелов в одной переменной среды. BP_IMAGE_LABELS
BP_OCI_AUTHORS
Дополнительные переменные среды см. здесь.
--build-env BP_OCI_AUTHORS=<value>
Поддержка создания приложений на основе Maven из источника. Используется для проекта с несколькими модулями. Указывает модуль для поиска артефакта приложения. По умолчанию корневой модуль (пустой). BP_MAVEN_BUILT_MODULE --build-env BP_MAVEN_BUILT_MODULE=./gateway

Существуют некоторые ограничения для собственного образа Java. Дополнительные сведения см. в разделе ограничений образов Java Native Image.

Развертывание приложений PHP

Пакет buildpack для развертывания приложений PHP — tanzu-buildpacks/php.

Пакет сборки Tanzu PHP совместим только с полным стеком ОС. Рекомендуется использовать построитель с стеком Jammy Full ОС. Дополнительные сведения см. в разделе рекомендаций по стеку ОС.

В следующей таблице перечислены функции, поддерживаемые в Azure Spring Apps:

Описание функции Комментарий Переменная среды Использование
Укажите версию PHP. Настраивает версию PHP. В настоящее время поддерживается: PHP 8.1.*и 8.2.*. Значение по умолчанию — 8.1.* BP_PHP_VERSION --build-env BP_PHP_VERSION=8.0.*
Добавьте сертификаты ЦС в хранилище доверия системы во время сборки и среды выполнения. Сведения о настройке сертификатов ЦС для сборок и развертываний приложений см. в разделе "Настройка сертификатов интеграции APM и ЦС". Неприменимо Неприменимо
Интеграция с Dynatrace, New Relic, агентом Динамического APM приложения. Узнайте , как настроить интеграцию APM и сертификаты ЦС. Неприменимо Неприменимо
Выберите веб-сервер. Параметры : php-server, httpd и nginx. Значение по умолчанию — php-server. BP_PHP_SERVER --build-env BP_PHP_SERVER=httpd
Настройка веб-каталога. Если веб-сервер — HTTPD или NGINX, веб-каталог по умолчанию используется для htdocs. Если веб-сервер является встроенным сервером PHP, веб-каталог по умолчанию имеет значение /workspace. BP_PHP_WEB_DIR --build-env BP_PHP_WEB_DIR=htdocs

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