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


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

Примечание.

Планы Basic, Standardи Enterprise вступили в период вывода из обращения 17 марта 2025 года. Дополнительные сведения см. в объявлении о выходе на пенсию в Azure Spring Apps.

План стандартного потребления и выделенный план вошли в период вывода из эксплуатации 30 сентября 2024 года, с полным завершением работы к концу марта 2025 года. Дополнительные сведения см. в статье «Миграция потребления и выделенного плана Azure Spring Apps Standard в приложения контейнеров Azure».

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

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

Предварительные условия

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

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

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

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

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

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

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

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

Нажмите кнопку Добавить, чтобы создать новый элемент. На следующем снимке экрана показаны ресурсы, которые следует использовать для создания настроенного конструктора. Стек ОС включает Bionic Base, Bionic Full, Jammy Tiny, Jammy 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 документации VMware.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    Снимок экрана портала Azure, показывающий страницу

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

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

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

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

Для получения дополнительной информации см. раздел «Служба сборки по запросу» в документе «Использование службы сборки Tanzu».

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

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 Spring 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 Gi, то число параллельных сборок равно 6.

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

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

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

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

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

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

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

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

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

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

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

Примечание.

В следующих разделах конфигурации сборки и развертывания на разных языках --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.*
Среда выполнения. Конфигурирует, будет ли включено отслеживание нативной памяти Java (NMT). Значение по умолчанию — true. Не поддерживается в JDK 8. BPL_JAVA_NMT_ENABLED --env BPL_JAVA_NMT_ENABLED=true
Настраивает уровень детализации для отчетов о работе Java Native Memory Tracking (NMT). Значение по умолчанию — summary. Установите значение detail для получения подробных выходных данных NMT. BPL_JAVA_NMT_LEVEL --env BPL_JAVA_NMT_ENABLED=summary
Добавьте сертификаты ЦС в хранилище доверия системы во время сборки и выполнения. См. раздел «Настройка сертификатов ЦС для сборок и развертываний приложений» в «Как настроить интеграцию APM и сертификаты ЦС». Неприменимо Неприменимо
Интеграция с Application Insights, Dynatrace, Elastic, New Relic, агентом App Dynamics APM. См. как настроить интеграцию APM и сертификаты удостоверяющего центра. Неприменимо Неприменимо
Разверните пакет WAR с помощью Apache Tomcat или TomEE. Задайте используемый сервер приложений. Установите 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 существует и aspectj-weaver.*.jar существует. Неприменимо Неприменимо

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

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

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

Описание функции Комментарий Переменная среды Использование
Настройте версию среды выполнения .NET Core. Поддерживает Net8.0и Net9.0.
Можно настроить с помощью файла проекта runtimeconfig.json или MSBuild.
Среда выполнения по умолчанию — 8.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.9.*, , 3.10.*3.11.*3.12.*, . 3.13.* Значение по умолчанию — 3.10.*.
Вы можете указать версию с помощью переменной BP_CPYTHON_VERSION среды во время сборки.
BP_CPYTHON_VERSION --build-env BP_CPYTHON_VERSION=3.13.*
Добавьте сертификаты ЦС в хранилище доверия системы во время сборки и выполнения. См. раздел «Настройка сертификатов ЦС для сборок и развертываний приложений» в «Как настроить интеграцию 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.22.*, 1.23.*. Значение по умолчанию — 1.22.*.
Версия Go автоматически обнаруживается из файла go.mod приложения. Эту версию можно переопределить, задав BP_GO_VERSION переменную среды во время сборки.
BP_GO_VERSION --build-env BP_GO_VERSION=1.23.*
Настройте несколько целевых объектов. Задает несколько целевых объектов для сборки 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:

Описание функции Комментарий Переменная среды Использование
Укажите версию узла. Поддерживает 18.*, 20.*, 22.*. Значение по умолчанию — 20.*.
Версию узла можно указать с помощью файла Nvmrc или node-version в корневом каталоге приложения. BP_NODE_VERSION переопределяет параметры.
BP_NODE_VERSION --build-env BP_NODE_VERSION=20.*
Добавьте сертификаты ЦС в хранилище доверия системы во время сборки и выполнения. См. раздел «Настройка сертификатов ЦС для сборок и развертываний приложений» в «Как настроить интеграцию APM и сертификаты ЦС». Неприменимо Неприменимо
Интеграция с Dynatrace, Elastic, New Relic, агентом AppDynamics 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 Native Image (предварительная версия)

Пакет 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 Native Image необходимо задать среду сборки на BP_NATIVE_IMAGEtrue, и ресурс памяти сборки не должен быть меньше 8Gi. Размер пула агента службы сборки не должен быть меньше 4 vCPU, 8 Gi. Дополнительную информацию см. в разделе Пул агентов сборки в Use Tanzu Build Service.

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

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

Описание функции Комментарий Переменная среды Использование
Интеграция с Bellsoft OpenJDK. Настраивает версию JDK. В настоящее время поддерживается JDK 8, 11, 17 и 21. BP_JVM_VERSION --build-env BP_JVM_VERSION=17
Настройте аргументы для native-image команды. Аргументы для непосредственной передачи команде 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.3.*. Значение по умолчанию — 8.1.*. BP_PHP_VERSION --build-env BP_PHP_VERSION=8.1.*
Добавьте сертификаты ЦС в хранилище доверия системы во время сборки и выполнения. См. раздел «Настройка сертификатов ЦС для сборок и развертываний приложений» в «Как настроить интеграцию APM и сертификаты ЦС». Неприменимо Неприменимо
Интеграция с Dynatrace, New Relic, агентом AppDynamics 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

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