Приложение и развертывание в 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 Spring Apps приложение — абстракция бизнес-приложения. Одна версия кода или двоичный файл, развернутый по мере работы приложения — это развертывание. Приложения выполняются в экземпляре службы Azure Spring Apps или просто в экземпляре службы, как показано далее.
В рамках одной подписки Azure может быть несколько экземпляров службы. Однако со службой Azure Spring Apps проще работать, когда все приложения, входящие в состав бизнес-приложения, размещены в рамках одного экземпляра службы. Одна из причин заключается в том, что приложения, скорее всего, будут взаимодействовать друг с другом. Это можно сделать с помощью реестра служб Eureka в экземпляре службы.
План Azure Spring Apps уровня "Стандартный" позволяет одному приложению иметь одно рабочее развертывание и одно промежуточное развертывание, чтобы можно было легко выполнить сине-зеленое развертывание.
Приложение
Следующие функции и свойства определяются на уровне приложения.
Функции | Description |
---|---|
Общедоступная конечная точка |
URL-адрес для доступа к приложению. |
Личный домен |
CNAME Запись, которая защищает личный домен. |
Привязка службы |
Внеоружное подключение к другим службам Azure. |
Управляемое удостоверение |
Управляемое удостоверение с помощью идентификатора Microsoft Entra позволяет приложению легко получить доступ к другим защищенным ресурсам Microsoft Entra, таким как Azure Key Vault. |
Постоянный служба хранилища |
Параметр, позволяющий сохранять данные за пределами перезапуска приложения. |
Развертывание
Следующие функции и свойства определяются на уровне развертывания и обмениваются при переключении рабочего и промежуточного развертывания.
Функции | Description |
---|---|
ЦП | Количество виртуальных ядер на экземпляр приложения. |
Память | Гб памяти на экземпляр приложения. |
Счетчик экземпляров |
Количество экземпляров приложения, задается вручную или автоматически. |
Автомасштабирование | Число экземпляров масштабирования автоматически зависит от предопределенных правил и расписаний. |
Параметры виртуальной машины Java |
Параметры JVM, которые нужно задать. |
Переменные среды |
Заданные переменные среды. |
Версия среды выполнения |
Java 8 или Java 11. |
Среда
Azure Spring Apps подключает некоторые файлы YAML только для чтения к развернутыми приложениям. Эти файлы содержат контекст Azure развертывания. В следующем списке показаны пути и содержимое этих файлов YAML:
/etc/azure-spring-cloud/context/azure-spring-apps.yml
AZURE_SPRING_APPS: SUBSCRIPTION_ID: <your-azure-subscription-id> RESOURCE_GROUP: <your-resource-group-name> NAME: <your-azure-spring-apps-name>
/etc/azure-spring-cloud/context/azure-spring-apps-deployment.yml
AZURE_SPRING_APPS: APP: NAME: <your-app-name> DEPLOYMENT: NAME: <your-deployment-name> ACTIVE: true # true if the deployment is in production, false if in staging
Если приложение является приложением Spring Boot, эти два пути к файлам добавляются в SPRING_CONFIG_ADDITIONAL_LOCATION
переменную среды. Таким образом, приложение может загружать эти свойства в качестве конфигураций и использовать их в коде. Например, с помощью @ConfigurationProperties
заметки можно привязать свойства YAML к классу Java. В следующем фрагменте кода показано, как создать @Configuration
класс, представляющий контекст Azure:
import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Configuration;
@Configuration
@ConfigurationProperties(prefix = "azure-spring-apps")
@Data
public class AzureSpringAppsContext {
private String subscriptionId;
private String resourceGroup;
private String name;
private AppContext app;
private DeploymentContext deployment;
@Data
public static class AppContext {
private String name;
}
@Data
public static class DeploymentContext {
private String name;
private boolean active;
}
}
Для других приложений polyglot может потребоваться считывать и получать доступ к соответствующим свойствам с помощью соответствующих библиотек чтения и записи файлов в приложениях.
Ограничения
- Приложение должно иметь одно рабочее развертывание. API блокирует удаление рабочего развертывания. Перед удалением необходимо переключить развертывание на промежуточное.
- Приложение может иметь не более двух развертываний. API блокирует создание более двух развертываний. Новый двоичный файл необходимо развернуть либо в производственном, либо в промежуточном развертывании.
- Управление развертыванием недоступно в плане "Базовый". Используйте план "Стандартный" или "Корпоративный" для возможности сине-зеленого развертывания.