Automatiser les déploiements d’applications 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 au : Niveau ✔️ De base/Standard ✔️ Entreprise
Cet article vous explique comment utiliser la tâche Azure Spring Apps pour Azure pipelines afin de déployer des applications.
Les outils d’intégration continue et de livraison continue vous permettent de déployer rapidement des mises à jour d’applications existantes avec un minimum d’effort et de risque. Azure DevOps vous aide à organiser et à contrôler ces travaux clés.
La vidéo suivante décrit l’automatisation de bout en bout à l’aide des outils de votre choix, y compris Azure Pipelines.
Créer une connexion de service Azure Resource Manager
Tout d’abord, créez une connexion de service du Gestionnaire de ressource Azure à votre projet Azure DevOps. Pour obtenir des instructions, consultez Se connecter à Microsoft Azure. Veillez à sélectionner le même abonnement que celui utilisé pour votre instance de service Azure Spring Apps.
Créer et déployer des applications
Vous pouvez désormais générer et déployer vos projets à l’aide d’une série de tâches. Le modèle de Pipelines Azure suivant définit des variables, une tâche .NET Core pour générer l’application et une tâche Azure Spring Apps pour déployer l’application.
variables:
workingDirectory: './steeltoe-sample'
planetMainEntry: 'Microsoft.Azure.SpringCloud.Sample.PlanetWeatherProvider.dll'
solarMainEntry: 'Microsoft.Azure.SpringCloud.Sample.SolarSystemWeather.dll'
planetAppName: 'planet-weather-provider'
solarAppName: 'solar-system-weather'
serviceName: '<your service name>'
steps:
# Restore, build, publish and package the zipped planet app
- task: DotNetCoreCLI@2
inputs:
command: 'publish'
publishWebProjects: false
arguments: '--configuration Release'
zipAfterPublish: false
modifyOutputPath: false
workingDirectory: $(workingDirectory)
# Deploy the planet app
- task: AzureSpringCloud@0
inputs:
azureSubscription: '<Service Connection Name>'
Action: 'Deploy'
AzureSpringCloud: $(serviceName)
AppName: 'testapp'
DeploymentType: 'Artifacts'
UseStagingDeployment: false
DeploymentName: 'default'
Package: $(workingDirectory)/src/$(planetAppName)/publish-deploy-planet.zip
RuntimeVersion: 'NetCore_31'
DotNetCoreMainEntryPath: $(planetMainEntry)
# Deploy the solar app
- task: AzureSpringCloud@0
inputs:
azureSubscription: '<Service Connection Name>'
Action: 'Deploy'
AzureSpringCloud: $(serviceName)
AppName: 'testapp'
DeploymentType: 'Artifacts'
UseStagingDeployment: false
DeploymentName: 'default'
Package: $(workingDirectory)/src/$(solarAppName)/publish-deploy-solar.zip
RuntimeVersion: 'NetCore_31'
DotNetCoreMainEntryPath: $(solarMainEntry)
Configurer une instance Azure Spring Apps et un projet Azure DevOps
Tout d’abord, procédez comme suit pour configurer une instance Azure Spring Apps existante à utiliser avec Azure DevOps.
- Accédez à votre instance Azure Spring Apps, puis créez une nouvelle application.
- Accédez au portail Azure DevOps, puis créez un nouveau projet sous l’organisation que vous avez choisie. Si vous ne possédez pas d’organisation Azure DevOps, vous pouvez en créer une gratuitement.
- Sélectionnez Repos, puis importez le code de démonstration Spring Boot dans le référentiel.
Créer une connexion de service Azure Resource Manager
Ensuite, créez une connexion de service du Gestionnaire de ressource Azure à votre projet Azure DevOps. Pour obtenir des instructions, consultez Se connecter à Microsoft Azure. Veillez à sélectionner le même abonnement que celui utilisé pour votre instance de service Azure Spring Apps.
Créer et déployer des applications
Vous pouvez désormais générer et déployer vos projets à l’aide d’une série de tâches. Les sections suivantes présentent différentes options de déploiement de votre application à l’aide d’Azure DevOps.
Déployer à l’aide d’un pipeline
Pour déployer un pipeline, procédez comme suit :
Sélectionnez Pipelines, puis créez un nouveau pipeline avec un modèle Maven.
Modifiez le fichier azure-pipelines.yml pour définir le
mavenPomFile
champ sur « complete/pom.xml ».Sélectionnez Afficher l’Assistant sur le côté droit, puis sélectionnez le modèle Azure Spring Apps.
Sélectionnez la connexion de service que vous avez créée pour votre abonnement Azure, puis sélectionnez votre instance Azure Spring Apps et votre instance d’application.
Désactiver Utiliser le déploiement intermédiaire.
Définissez Package ou dossier sur complete/target/spring-boot-complete-0.0.1-SNAPSHOT.jar.
Sélectionnez Ajouter pour ajouter cette tâche à votre pipeline.
Les paramètres de votre pipeline doivent correspondre à l’image suivante.
Vous pouvez également générer et déployer vos projets à l’aide du modèle de pipeline suivant. Cet exemple définit tout d’abord une tâche Maven pour générer l’application, suivie d’une deuxième tâche qui déploie le fichier JAR à l’aide de la tâche Azure Spring Apps pour Azure Pipelines.
steps: - task: Maven@3 inputs: mavenPomFile: 'complete/pom.xml' - task: AzureSpringCloud@0 inputs: azureSubscription: '<your service connection name>' Action: 'Deploy' AzureSpringCloud: <your Azure Spring Apps service> AppName: <app-name> DeploymentType: 'Artifacts' UseStagingDeployment: false DeploymentName: 'default' Package: ./target/your-result-jar.jar
Sélectionnez Enregistrer et exécuter, puis attendez que la tâche se termine.
Déploiement Blue-Green
Le déploiement présenté dans la section précédente reçoit immédiatement le trafic de l’application lors du déploiement. Cela vous permet de tester l’application dans l’environnement de production avant de recevoir le trafic des clients.
Modifier le fichier du pipeline
Pour générer l’application de la même façon que celle présentée précédemment et la déployer dans un déploiement intermédiaire, utilisez le modèle suivant. Dans cet exemple, le déploiement intermédiaire doit déjà exister. Pour une autre approche, consultez Stratégies de déploiement bleu-vert.
steps:
- task: Maven@3
inputs:
mavenPomFile: 'pom.xml'
- task: AzureSpringCloud@0
inputs:
azureSubscription: '<your service connection name>'
Action: 'Deploy'
AzureSpringCloud: <your Azure Spring Apps service>
AppName: <app-name>
DeploymentType: 'Artifacts'
UseStagingDeployment: true
Package: ./target/your-result-jar.jar
- task: AzureSpringCloud@0
inputs:
azureSubscription: '<your service connection name>'
Action: 'Set Production'
AzureSpringCloud: <your Azure Spring Apps service>
AppName: <app-name>
UseStagingDeployment: true
Utiliser la section Publications
Les étapes suivantes vous montrent comment activer un déploiement Blue-Green à partir de la section Publications .
Sélectionnez Pipelines, créez un nouveau pipeline pour votre build Maven et publiez l’artefact.
- sélectionnez Azure Repos Git pour votre emplacement de code.
- Sélectionnez un référentiel dans lequel se trouve votre code.
- Sélectionnez le modèle Maven et modifiez le fichier pour définir le
mavenPomFile
champ surcomplete/pom.xml
. - Sélectionnez Afficher l’Assistant sur le côté droit et sélectionnez le modèle Publier les artefacts de build.
- Définissez le Chemin d’accès à publier sur complete/target/spring-boot-complete-0.0.1-SNAPSHOT.jar.
- Sélectionnez Enregistrer et exécuter.
Sélectionnez Publications, puis Créer une publication.
Ajoutez un nouveau pipeline, puis sélectionnez Travail vide pour créer un travail.
Sous Etapes, sélectionnez la ligne 1 travail, 0 tâche
- Sélectionnez le + pour ajouter une tâche au travail.
- Recherchez le modèle Azure Spring Apps, puis sélectionnez Ajouter pour ajouter la tâche au travail.
- Sélectionnez Déploiement Azure Spring Apps : pour modifier la tâche.
- Complétez cette tâche avec les informations de votre application, puis désactivez l'Utilisation du déploiement intermédiaire.
- Activez Créer un déploiement intermédiaire s’il n’en existe pas, puis entrez un nom dans Déploiement.
- Sélectionnez Enregistrer pour enregistrer cette tâche.
- Cliquez sur OK.
Sous l'onglet Pipeline, sélectionnez ensuite Ajouter un artefact.
- Sous source (pipeline de Build), sélectionnez le pipeline créé précédemment.
- Sélectionnez Ajouter, puis Enregistrer.
Sélectionnez 1 travail, 1 tâche sous Etapes.
Accédez à la tâche de Déploiement Azure Spring Apps de l’Étape 1, puis sélectionnez les points de suspension en regard de Package ou dossier.
Sélectionnez spring-boot-complete-0.0.1-SNAPSHOT.jar dans la boîte de dialogue, puis sélectionnez OK.
Sélectionnez le + pour ajouter une autre tâche Azure Spring Apps au travail.
Modifiez l’action pour Définir le déploiement de production.
Sélectionnez Enregistrer, puis Créer une publication pour démarrer automatiquement le déploiement.
Pour vérifier l’état de publication actuel de votre application, sélectionnez Afficher la publication. Une fois cette tâche terminée, accédez au Portail Azure pour vérifier l’état de votre application.
Déployer à partir de la source
Pour déployer directement sur Azure sans étape de génération distincte, utilisez le modèle de pipeline suivant.
- task: AzureSpringCloud@0
inputs:
azureSubscription: '<your service connection name>'
Action: 'Deploy'
AzureSpringCloud: <your Azure Spring Apps service>
AppName: <app-name>
DeploymentType: 'Artifacts'
UseStagingDeployment: false
DeploymentName: 'default'
Package: $(Build.SourcesDirectory)
Déployer à partir d’une image personnalisée
Pour déployer directement à partir d’une image conteneur existante, utilisez le modèle de pipeline suivant.
- task: AzureSpringCloud@0
inputs:
azureSubscription: '<your service connection name>'
Action: 'Deploy'
AzureSpringCloud: '<your Azure Spring Apps service>'
AppName: '<app-name>'
DeploymentType: 'CustomContainer'
UseStagingDeployment: false
DeploymentName: 'default'
ContainerRegistry: 'docker.io' # or your Azure Container Registry, e.g: 'contoso.azurecr.io'
RegistryUsername: '$(username)'
RegistryPassword: '$(password)'
ContainerImage: '<your image tag>'
Déployer et spécifier un générateur (plan Entreprise uniquement)
Si vous utilisez le plan Azure Spring Apps Enterprise, vous pouvez également spécifier le générateur à utiliser pour déployer des actions à l’aide de l’option builder
, comme illustré dans l’exemple suivant. Pour plus d’informations, consultez Utiliser le service de build Tanzu.
- task: AzureSpringCloud@0
inputs:
azureSubscription: '<your-service-connection-name>'
Action: 'Deploy'
AzureSpringCloud: '<your-Azure-Spring-Apps-service-instance-name>'
AppName: '<app-name>'
UseStagingDeployment: false
DeploymentName: 'default'
Package: './target/your-result-jar.jar'
Builder: '<your-Tanzu-Build-Service-Builder-resource>'