Application et déploiement dans Azure Spring Apps
Remarque
Azure Spring Apps est le nouveau nom du service Azure Spring Cloud. Bien que le service ait un nouveau nom, vous verrez l’ancien nom à divers endroits pendant un certain temps, car nous travaillons à mettre à jour les ressources telles que les captures d’écran, les vidéos et les diagrammes.
Cet article s’applique à : ✔️ Java ✔️ C#
Cet article s’applique au : Niveau ✔️ De base/Standard ✔️ Entreprise
L’application et le déploiement sont les deux concepts clés du modèle de ressources d’Azure Spring Apps. Dans Azure Spring Apps, une application est l’abstraction d’une application métier. Une version de code ou de binaire déployée comme application s’exécute dans un déploiement. Les applications s’exécutent dans une instance de service Azure Spring Apps ou simplement dans une instance de service, comme indiqué ci-dessous.
Vous pouvez avoir plusieurs instances de service au sein d’un seul abonnement Azure, mais le service Azure Spring Apps est plus facile à utiliser quand toutes les applications qui composent une application métier résident dans une instance de service unique. L’une des raisons est que les applications sont susceptibles de communiquer entre elles. Ils peuvent facilement le faire à l’aide du registre du service Eureka dans l’instance de service.
Le plan Azure Spring Apps Standard permet à une application d’avoir un déploiement de production et un déploiement intermédiaire, afin de pouvoir effectuer facilement un déploiement bleu/vert.
Application
Les fonctionnalités/propriétés suivantes sont définies au niveau de l’application.
Fonctionnalités | Description |
---|---|
Point de terminaison public |
URL permettant d’accéder à l’application. |
Domaine personnalisé |
Enregistrement CNAME qui sécurise le domaine personnalisé. |
Liaison de service |
Connexion prête à l’emploi avec d’autres services Azure. |
Identité managée |
L’identité managée par l’ID Microsoft Entra permet à votre application d’accéder facilement à d’autres ressources protégées par Microsoft Entra, telles qu’Azure Key Vault. |
Stockage persistant |
Paramètre qui permet aux données de conserver au-delà du redémarrage de l’application. |
Déploiement
Les fonctionnalités/propriétés suivantes sont définies au niveau du déploiement et sont échangées lors de l’échange du déploiement de production et de préproduction.
Fonctionnalités | Description |
---|---|
UC | Nombre de vcores par instance d’application. |
Mémoire | Go de mémoire par instance d’application. |
Nombre d’instances |
Nombre d’instances d’application, définies manuellement ou automatiquement. |
Mise à l’échelle automatique | Le nombre d’instances de mise à l’échelle est automatiquement basé sur des règles et des planifications prédéfinies. |
Options JVM |
Options JVM à définir. |
Variables d’environnement |
Variables d’environnement à définir. |
Version du runtime |
Java 8 ou Java 11. |
Environnement
Azure Spring Apps monte certains fichiers YAML en lecture seule sur vos applications déployées. Ces fichiers contiennent le contexte Azure d’un déploiement. La liste suivante présente les chemins d’accès et le contenu de ces fichiers 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 votre application est une application Spring Boot, ces deux chemins de fichier sont ajoutés à la variable d’environnement SPRING_CONFIG_ADDITIONAL_LOCATION
. De cette façon, votre application peut charger ces propriétés en tant que configurations et les utiliser dans votre code. Par exemple, vous pouvez utiliser l’annotation @ConfigurationProperties
pour lier les propriétés YAML à une classe Java. L’extrait de code suivant montre comment créer une @Configuration
classe qui représente le contexte 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;
}
}
Pour toutes les autres applications polyglottes, vous devrez peut-être lire et accéder aux propriétés correspondantes à l’aide des bibliothèques de lecture/écriture de fichiers correspondantes dans vos applications.
Restrictions
- Une application doit avoir un déploiement de production. L’API bloque la suppression d’un déploiement de production. Vous devez échanger un déploiement en préproduction avant de le supprimer.
- Une application peut avoir au maximum deux déploiements. L’API bloque la création de plus de deux déploiements. Déployez votre nouveau binaire dans le déploiement de production ou intermédiaire existant.
- La gestion du déploiement n’est pas disponible dans le plan de base. Utilisez le plan Standard ou Enterprise pour la fonctionnalité de déploiement bleu-vert.