Application et déploiement dans Azure Spring Apps

Remarque

Les plans Essentiel, Standard et Entreprise seront déconseillés à compter de la mi-mars 2025, avec une période de mise hors service de 3 ans. Nous vous recommandons de passer à Azure Container Apps. Pour plus d’informations, consultez l’annonce de mise hors service d’Azure Spring Apps.

Le plan de consommation standard et dédiée sera déconseillé à compter du 30 septembre 2024, avec un arrêt complet après six mois. Nous vous recommandons de passer à Azure Container Apps. Pour plus d’informations, consultez Migrer le plan de consommation standard et dédiée Azure Spring Apps vers Azure Container Apps.

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 du service Azure Spring Apps ou simplement dans une instance de service, comme indiqué ci-dessous.

Diagramme montrant la relation entre les applications et les déploiements.

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 niveau Standard d’Azure Spring Apps permet à une application de disposer d’un déploiement de production et d’un déploiement de préproduction, ce qui vous permet d’y 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 pour accéder à l’application.
Domaine
personnalisé
L’enregistrement CNAME qui sécurise le domaine personnalisé.
Liaison de
service
Connexion prête à l’emploi avec d’autres services Azure.
Identité
managée
Une identité managée par Microsoft Entra ID permet à votre application d’accéder facilement à d’autres ressources protégées Microsoft Entra, comme Azure Key Vault.
Stockage
persistant
Paramètre qui permet aux données d’être conservées 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 du basculement entre un déploiement de production et un déploiement intermédiaire.

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éfini manuellement ou automatiquement.
Mise à l’échelle automatique Le nombre d'instances d'échelle est calculé automatiquement sur la base de règles et de planifications prédéfinies.
Options
JVM
Options JVM à définir.
Variables
d’environnement
Variables d’environnement à définir.
Version du
runtime
Soit 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.

Étapes suivantes