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


Развертывание приложений Java Spring Boot в приложениях контейнеров Azure

В этой статье показано, как развернуть приложение Java Spring Boot с помощью учетной записи Microsoft Entra в приложениях контейнеров Azure.

В этой статье предполагается, что вы выполнили одну из следующих статей с помощью только вкладки "Запуск локально " и теперь хотите развернуть в Azure. Эти инструкции совпадают с инструкциями на вкладке "Развертывание в Azure " в следующих статьях:

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

  • Учетная запись Azure. Если ее нет, создайте бесплатную учетную запись. Чтобы продолжить, вам потребуется разрешение участника или владельца подписки Azure. Дополнительные сведения см. в разделе Назначение ролей Azure с помощью портала Azure.
  • Интерфейс командной строки Azure.
  • Расширение ИНТЕРФЕЙСА командной строки для приложений контейнеров Azure или более поздней версии 0.3.47 . Чтобы установить последнюю версию, используйте az extension add --name containerapp --upgrade --allow-preview команду.
  • Пакет средств разработки Java версии 17 или более поздней.
  • Maven.

Подготовка проекта Spring

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

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

    mvn clean verify
    
  2. Запустите пример проекта локально с помощью следующей команды:

    mvn spring-boot:run
    

Настройка

Чтобы войти в Azure из ИНТЕРФЕЙСА командной строки, выполните следующую команду и следуйте инструкциям, чтобы завершить процесс проверки подлинности.

az login

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

az upgrade

Затем установите или обновите расширение "Приложения контейнеров Azure" для интерфейса командной строки.

Если при выполнении az containerapp команд в Azure CLI возникают ошибки, связанные с отсутствующими параметрами, убедитесь, что установлена последняя версия расширения azure Container Apps.

az extension add --name containerapp --upgrade

Примечание.

Начиная с мая 2024 г. расширения Azure CLI больше не поддерживают предварительные версии функций по умолчанию. Чтобы получить доступ к функциям предварительной версии контейнерных приложений, установите расширение "Приложения контейнеров" с --allow-preview trueпомощью .

az extension add --name containerapp --upgrade --allow-preview true

Теперь, когда установлено текущее расширение или модуль, зарегистрируйте Microsoft.App пространства имен и Microsoft.OperationalInsights пространств имен.

Примечание.

Ресурсы Контейнеров приложений Azure перенесены из пространства имен Microsoft.Web в пространство имен Microsoft.App. Дополнительные сведения см. в статье о миграции пространства имен из Microsoft.Web в Microsoft.App в марте 2022 г..

az provider register --namespace Microsoft.App
az provider register --namespace Microsoft.OperationalInsights

Создание среды "Приложения контейнеров Azure"

После завершения настройки Azure CLI вы можете определить переменные среды, которые используются в этой статье.

Определите следующие переменные в оболочке Bash.

export RESOURCE_GROUP="ms-identity-containerapps"
export LOCATION="canadacentral"
export ENVIRONMENT="env-ms-identity-containerapps"
export API_NAME="ms-identity-api"
export JAR_FILE_PATH_AND_NAME="./target/ms-identity-spring-boot-webapp-0.0.1-SNAPSHOT.jar"

Создать группу ресурсов.

az group create  \
    --name $RESOURCE_GROUP \
    --location $LOCATION \

Создайте среду с автоматически созданной рабочей областью Log Analytics.

az containerapp env create \
    --name $ENVIRONMENT \
    --resource-group $RESOURCE_GROUP \
    --location $LOCATION

Отображение домена по умолчанию среды приложения контейнера. Запишите этот домен для использования в последующих разделах.

az containerapp env show \
    --name $ENVIRONMENT \
    --resource-group $RESOURCE_GROUP \
    --query properties.defaultDomain

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

При развертывании приложения в приложениях контейнеров Azure URL-адрес перенаправления изменяется на URL-адрес перенаправления развернутого экземпляра приложения в приложениях контейнеров Azure. Чтобы изменить эти параметры в файле application.yml , выполните следующие действия.

  1. Перейдите к файлу src\main\resources\application.yml приложения и измените значение post-logout-redirect-uri доменного имени развернутого приложения, как показано в следующем примере. Обязательно замените <API_NAME> <default-domain-of-container-app-environment> и на ваши фактические значения. Например, с доменом по умолчанию для среды приложения контейнеров Azure из предыдущего шага и ms-identity-api для имени приложения вы будете использовать https://ms-identity-api.<default-domain> значение post-logout-redirect-uri .

    post-logout-redirect-uri: https://<API_NAME>.<default-domain-of-container-app-environment>
    
  2. После сохранения этого файла используйте следующую команду, чтобы перестроить приложение:

    mvn clean package
    

Внимание

Файл application.yml приложения в настоящее время содержит значение секрета клиента в параметре client-secret . Не рекомендуется хранить это значение в этом файле. Вы также можете рисковать, если зафиксировать файл в репозитории Git. Рекомендуемый подход см. в статье "Управление секретами в приложениях контейнеров Azure".

Обновление регистрации приложения идентификатора Microsoft Entra

Так как URI перенаправления изменяется в развернутом приложении в приложениях контейнеров Azure, необходимо также изменить URI перенаправления в регистрации приложения Идентификатора Microsoft Entra. Чтобы внести это изменение, выполните следующие действия:

  1. Перейдите на страницу Регистрация приложений Платформы удостоверений Майкрософт для разработчиков.

  2. Используйте поле поиска для поиска регистрации приложения, например java-servlet-webapp-authentication.

  3. Откройте регистрацию приложения, выбрав его имя.

  4. Выберите Проверка подлинности в меню.

  5. В разделе URI веб-перенаправления - выберите "Добавить URI".

  6. Заполните универсальный код ресурса (URI) приложения, добавляя /login/oauth2/code/ например https://<containerapp-name>.<default domain of container app environment>/login/oauth2/code/.

  7. Выберите Сохранить.

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

Разверните пакет JAR в приложениях контейнеров Azure.

Примечание.

При необходимости можно указать версию JDK в переменных среды сборки Java. Дополнительные сведения см. в статье "Создание переменных среды для Java" в приложениях контейнеров Azure.

Теперь вы можете развернуть WAR-файл с помощью az containerapp up команды CLI.

az containerapp up \
    --name $API_NAME \
    --resource-group $RESOURCE_GROUP \
    --location $LOCATION \
    --environment $ENVIRONMENT \
    --artifact <JAR_FILE_PATH_AND_NAME> \
    --ingress external \
    --target-port 8080 \
    --query properties.configuration.ingress.fqdn

Примечание.

Версия JDK по умолчанию — 17. Если необходимо изменить версию JDK для совместимости с приложением, можно использовать --build-env-vars BP_JVM_VERSION=<YOUR_JDK_VERSION> аргумент для настройки номера версии.

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

Проверка приложения

В этом примере containerapp up команда включает --query properties.configuration.ingress.fqdn аргумент, который возвращает полное доменное имя (FQDN), также известное как URL-адрес приложения. Выполните следующие действия, чтобы проверить журналы приложения, чтобы изучить любую проблему развертывания:

  1. Перейдите по URL-адресу выходного приложения на странице "Выходные данные" раздела "Развертывание".

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

Дополнительные сведения

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

Дополнительные сведения и другие варианты развертывания см. в следующих статьях: