Aplicación e implementación en Azure Spring Apps
Nota:
Los planes Básico, Estándar y Enterprise quedarán en desuso a partir de mediados de marzo de 2025, con un período de jubilación de 3 años. Se recomienda realizar la transición a Azure Container Apps. Para obtener más información, consulte el anuncio de retirada de Azure Spring Apps.
El plan Estándar por consumo y dedicado quedará obsoleto a partir del 30 de septiembre de 2024, con un cierre completo al cabo de seis meses. Se recomienda realizar la transición a Azure Container Apps. Para más información, consulte Migrar el plan Estándar por consumo y dedicado de Azure Spring Apps a Azure Container Apps.
Este artículo se aplica a: ✔️ Java ✔️ C#
La información de este artículo puede ponerse en práctica en: ✔️ Básico o Estándar ✔️ Enterprise
Aplicación e implementación son los dos conceptos clave del modelo de recursos de Azure Spring Apps. En Azure Spring Apps, una aplicación es una abstracción de una aplicación empresarial. Una versión de código o binaria implementada como la aplicación se ejecuta en una implementación. Las aplicaciones se ejecutan en unainstancia de servicio de Azure Spring Apps, o simplemente instancia de servicio, como se muestra a continuación.
Puede tener varias instancias de servicio en una sola suscripción de Azure, pero el servicio Azure Spring Apps es más fácil de usar cuando todas las aplicaciones que componen una aplicación empresarial residen en una única instancia de servicio. Una razón es que es probable que las aplicaciones se comuniquen entre sí. Pueden hacerlo fácilmente mediante el registro del servicio Eureka en la instancia de servicio.
El plan Estándar de Azure Spring Apps permite que una aplicación tenga una implementación de producción y una implementación de ensayo, de modo que pueda realizar una implementación azul/verde en ella fácilmente.
Aplicación
Las siguientes características o propiedades se definen en el nivel de aplicación.
Características | Descripción |
---|---|
Punto de conexión público |
Dirección URL para acceder a la aplicación. |
Custom Domain |
Registro CNAME que protege el dominio personalizado. |
Enlace de servicio |
La conexión integrada con otros servicios de Azure. |
Identidad administrada |
La identidad administrada por Microsoft Entra ID permite a la aplicación acceder fácilmente a otros recursos protegidos de Microsoft Entra, como Azure Key Vault. |
Almacenamiento persistente |
La configuración que permite que los datos se conserven más allá del reinicio de la aplicación. |
Implementación
Las siguientes características o propiedades se definen en el nivel de implementación y se intercambian al intercambiar la implementación de producción y ensayo.
Características | Descripción |
---|---|
CPU | Número de núcleos por instancia de aplicación. |
Memoria | Los Gb de memoria por instancia de aplicación. |
Recuento de instancias |
El número de instancias de aplicación, establecido manual o automáticamente. |
Escalado automático | El recuento de instancias de escalado se basa automáticamente en las reglas y programaciones predefinidas. |
Opciones de JMV |
Opciones de JVM que se van a establecer. |
Variables de entorno |
Variables de entorno que se van a establecer. |
Versión de runtime |
Java 8 o Java 11. |
Entorno
Azure Spring Apps monta algunos archivos YAML de solo lectura en las aplicaciones implementadas. Estos archivos contienen el contexto de Azure de una implementación. En la siguiente lista se muestran las rutas de acceso y el contenido de estos archivos 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
Si la aplicación es una aplicación de Spring Boot, estas dos rutas de acceso de archivo se agregan a la SPRING_CONFIG_ADDITIONAL_LOCATION
variable de entorno. De este modo, la aplicación puede cargar estas propiedades como configuraciones y usarlas en el código. Por ejemplo, puede usar la @ConfigurationProperties
anotación para enlazar las propiedades de YAML a una clase Java. En el fragmento de código siguiente se muestra cómo crear una @Configuration
clase que represente el contexto de 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;
}
}
Para cualquier otra aplicación políglota, puede que necesites leer y acceder a las propiedades correspondientes utilizando las bibliotecas de lectura y escritura de archivos correspondientes en tus aplicaciones.
Restricciones
- Una aplicación debe tener una implementación de producción. La API bloquea la eliminación de una implementación de producción. Debe intercambiar una implementación al almacenamiento provisional antes de eliminarla.
- Una aplicación puede tener dos implementaciones como máximo. La API bloquea la creación de más de dos implementaciones. Implemente el nuevo archivo binario en la implementación de producción o de almacenamiento provisional.
- La administración de implementación no está disponible en el plan Básico. Use el plan Estándar o Enterprise para la funcionalidad de implementación azul-verde.