Azure App Services
В данном разделе вы узнаете, как развернуть приложение Jmix в облако Azure App Services.
Перед началом работы с руководством создайте учетную запись Microsoft Azure и Azure DevOps и убедитесь, что у вас есть доступ к порталу Azure.
В качестве базы данных будет использоваться PostgreSQL. |
Создание среды Azure
Запустите Azure Cloud Shell из портала Azure и начните с создания группы ресурсов:
az group create --name MyJmixGroup1 --location eastus
После этого создайте сервер PostgreSQL. Здесь sku
означает "Stock Keeping Unit", поэтому --sku-name GP_Gen5_2
означает "General Purpose pricing tier, Generation 5, and 2 virtual cores". Передайте свои собственные учетные данные базы данных в команде:
az postgres server create --resource-group MyJmixGroup1 --name myjmixpostgres1 --admin-user jmixadmin --admin-password ChangeMe@42 --sku-name GP_Gen5_2
Запомните пароль, так его нельзя увидеть в интерфейсе Azure.
В портале перейдите к myjmixpostgres1, откройте Connection security, установите для Allow access to Azure services значение Yes и нажмите Save.
Настройка проекта Jmix
Если вы хотите использовать для разработки локальную базу данных PostgreSQL, настройки вашего хранилища данных и application.properties
должны содержать параметры подключения к ней, например:
main.datasource.url = jdbc:postgresql://localhost/demo
main.datasource.username = root
main.datasource.password = root
Параметры подключения Azure PostgreSQL должны быть указаны в конфигурации задачи Gradle, как описано ниже.
Откройте build.gradle
и добавьте плагин Azure WebApp для Gradle в раздел plugins
:
plugins {
// ...
id "com.microsoft.azure.azurewebapp" version "1.2.0"
}
Затем добавьте конфигурацию задачи azurewebapp
с вашими параметрами и учетными данными Azure:
azurewebapp {
subscription = '<your-subscription-id>'
resourceGroup = 'MyJmixGroup1' (1)
appServicePlanName = 'MyJmixPlan1' (2)
appName = 'MyJmixApp1' (3)
pricingTier = 'P1v2'
region = 'eastus'
runtime {
os = 'Linux'
webContainer = 'Java SE' (4)
javaVersion = 'Java 17' (5)
}
appSettings { (6)
put('main.datasource.url', 'jdbc:postgresql://myjmixpostgres1.postgres.database.azure.com:5432/postgres')
put('main.datasource.username', 'jmixadmin@myjmixpostgres1')
put('main.datasource.password', 'ChangeMe@42')
}
}
1 | Группа ресурсов, которую вы создали на портале Azure. |
2 | Тарифный план обслуживания приложения будет создан автоматически при первом развертывании. |
3 | Название приложения, которое также будет использоваться в URL-адресе приложения. |
4 | Контейнер для исполняемого файла Spring Boot JAR. |
5 | Версия Java должна соответствовать версии, использованной при компиляции приложения. |
6 | Раздел appSettings позволяет устанавливать переменные среды для подключения к Azure PostgreSQL при развертывании приложения в облаке. Здесь myjmixpostgres1 – это имя сервера PostgreSQL, созданного выше. |
Теперь вы можете развернуть приложение в облаке Azure с помощью следующей команды:
./gradlew azureWebAppDeploy
Если развертывание прошло успешно, запущенное приложение будет доступно по адресу https://myjmixapp1.azurewebsites.net
.
Если вы получили сообщение об ошибке от Gradle, попробуйте выполнить команду еще раз с параметром --stacktrace
, чтобы увидеть причину:
./gradlew azureWebAppDeploy --stacktrace
Чтобы включить ведение журнала приложений, откройте приложение в портале и выберите App Service logs. В поле Application logging выберите File System и нажмите Save. После этого повторно разверните приложение из командной строки или перезапустите его на странице обзора приложения на портале.
Чтобы просмотреть или загрузить журналы, перейдите на страницу приложения на портале и выберите Diagnose and solve problems → Availability and Performance → Application Logs.