Automatisera programdistributioner till Azure Spring Cloud
Den här artikeln visar hur du använder Azure Spring Cloud för Azure Pipelines för att distribuera program.
Med verktyg för kontinuerlig integrering och kontinuerlig leverans kan du snabbt distribuera uppdateringar till befintliga program med minimal ansträngning och risk. Azure DevOps hjälper dig att organisera och kontrollera dessa viktiga jobb.
I följande video beskrivs automatisering från start till slut med valfria verktyg, inklusive Azure Pipelines.
Skapa en Azure Resource Manager-tjänstanslutning
Skapa först en Azure Resource Manager-tjänstanslutning till ditt Azure DevOps-projekt. Anvisningar finns i Anslut till Microsoft Azure. Se till att välja samma prenumeration som du använder för din Azure Spring Cloud-tjänstinstans.
Skapa och distribuera appar
Nu kan du skapa och distribuera dina projekt med hjälp av en serie uppgifter. Följande Azure Pipelines-mall definierar variabler, en .NET Core-uppgift för att skapa programmet och en Azure Spring Cloud-uppgift för att distribuera programmet.
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'
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'
UseStagingDeployment: false
DeploymentName: 'default'
Package: $(workingDirectory)/src/$(solarAppName)/publish-deploy-solar.zip
RuntimeVersion: 'NetCore_31'
DotNetCoreMainEntryPath: $(solarMainEntry)
Konfigurera en Azure Spring Cloud-instans och ett Azure DevOps-projekt
Använd först följande steg för att konfigurera en befintlig Azure Spring Cloud instans för användning med Azure DevOps.
- Gå till din Azure Spring Cloud instans och skapa sedan en ny app.
- Gå till Azure DevOps-portalen och skapa sedan ett nytt projekt under din valda organisation. Om du inte har en Azure DevOps-organisation kan du skapa en utan kostnad.
- Välj Lagringsplatsen och importera sedan Spring Boot demokod till lagringsplatsen.
Skapa en Azure Resource Manager-tjänstanslutning
Skapa sedan en Azure Resource Manager till ditt Azure DevOps-projekt. Anvisningar finns i Anslut till Microsoft Azure. Se till att välja samma prenumeration som du använder för din Azure Spring Cloud-tjänstinstans.
Skapa och distribuera appar
Nu kan du skapa och distribuera dina projekt med hjälp av en serie uppgifter. I följande avsnitt visas olika alternativ för att distribuera din app med Hjälp av Azure DevOps.
Distribuera med hjälp av en pipeline
Följ dessa steg om du vill distribuera med hjälp av en pipeline:
Välj Pipelines och skapa sedan en ny pipeline med en Maven-mall.
Redigera filen azure-pipelines.yml för att ange
mavenPomFilefältet till "complete/pom.xml".Välj Visa assistenten på höger sida och välj sedan Azure Spring Cloud mall.
Välj den tjänstanslutning som du skapade för din Azure-prenumeration och välj sedan din Spring Cloud-instans och appinstans.
Inaktivera Använd mellanlagringsdistribution.
Ange Paket eller mapp till complete/target/spring-boot-complete-0.0.1-SNAPSHOT.jar.
Välj Lägg till för att lägga till den här uppgiften i din pipeline.
Dina pipelineinställningar bör matcha följande bild.
Du kan också skapa och distribuera dina projekt med hjälp av följande pipelinemall. Det här exemplet definierar först en Maven-uppgift för att skapa programmet, följt av en andra uppgift som distribuerar JAR-filen med hjälp Azure Spring Cloud-uppgiften för 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 Cloud service> AppName: <app-name> UseStagingDeployment: false DeploymentName: 'default' Package: ./target/your-result-jar.jarVälj Spara och kör och vänta sedan tills jobbet har avslutats.
Blågröna distributioner
Distributionen som visas i föregående avsnitt tar emot programtrafik omedelbart vid distributionen. På så sätt kan du testa programmet i produktionsmiljön innan det tar emot kundtrafik.
Redigera pipelinefilen
Om du vill skapa programmet på samma sätt som det visades tidigare och distribuera det till en mellanlagringsdistribution använder du följande mall. I det här exemplet måste mellanlagringsdistributionen redan finnas. En alternativ metod finns i Blågröna distributionsstrategier.
steps:
- task: Maven@3
inputs:
mavenPomFile: 'pom.xml'
- task: AzureSpringCloud@0
inputs:
azureSubscription: '<your service connection name>'
Action: 'Deploy'
AzureSpringCloud: <your Azure Spring Cloud service>
AppName: <app-name>
UseStagingDeployment: true
Package: ./target/your-result-jar.jar
- task: AzureSpringCloud@0
inputs:
azureSubscription: '<your service connection name>'
Action: 'Set Production'
AzureSpringCloud: <your Azure Spring Cloud service>
AppName: <app-name>
UseStagingDeployment: true
Använd avsnittet Versioner
Följande steg visar hur du aktiverar en blå-grön distribution från avsnittet Versioner.
Välj Pipelines och skapa en ny pipeline för maven-bygget och publicera artefakten.
- Välj Azure Repos Git som kodplats.
- Välj en lagringsplats där koden finns.
- Välj Maven-mallen och ändra filen för att ange
mavenPomFilefältet tillcomplete/pom.xml. - Välj Visa assistenten till höger och välj mallen Publicera byggartefakter.
- Ange Sökväg för att publicera till complete/target/spring-boot-complete-0.0.1-SNAPSHOT.jar.
- Välj Spara och kör.
Välj Versioner och sedan Skapa version.
Lägg till en ny pipeline och välj Tomt jobb för att skapa ett jobb.
Under Faser väljer du rad 1-jobbet, 0 uppgift
- Välj för + att lägga till en uppgift i jobbet.
- Sök efter Azure Spring Cloud mallen och välj sedan Lägg till för att lägga till uppgiften i jobbet.
- Välj Azure Spring Cloud Distribuera: för att redigera uppgiften.
- Fyll i den här uppgiften med appens information och inaktivera sedan Använd mellanlagringsdistribution.
- Aktivera Skapa en ny mellanlagringsdistribution om det inte finns någon och ange sedan ett namn i Distribution.
- Spara uppgiften genom att välja Spara.
- Välj OK.
Välj Pipeline och sedan Lägg till en artefakt.
- Under Källa (bygg-pipeline) väljer du den pipeline som skapades tidigare.
- Välj Lägg till och sedan Spara.
Välj 1 jobb, 1 aktivitet under Faser.
Gå till Azure Spring Cloud Distribuera i steg 1 och välj sedan ellipsen bredvid Paket eller mapp.
Välj spring-boot-complete-0.0.1-SNAPSHOT.jar i dialogrutan och välj sedan OK.
Välj för + att lägga till Azure Spring Cloud till aktiviteten i jobbet.
Ändra åtgärden till Ange produktionsdistribution.
Välj Spara och sedan Skapa version för att automatiskt starta distributionen.
Om du vill verifiera appens aktuella lanseringsstatus väljer du Visa version. När den här uppgiften är klar går du till Azure Portal för att verifiera din appstatus.
Distribuera från källa
Om du vill distribuera direkt till Azure utan ett separat byggsteg använder du följande pipelinemall.
- task: AzureSpringCloud@0
inputs:
azureSubscription: '<your service connection name>'
Action: 'Deploy'
AzureSpringCloud: <your Azure Spring Cloud service>
AppName: <app-name>
UseStagingDeployment: false
DeploymentName: 'default'
Package: $(Build.SourcesDirectory)