Automatisera programdistributioner till Azure Spring Apps
Kommentar
Basic-, Standard- och Enterprise-planerna kommer att vara inaktuella från och med mitten av mars 2025, med en 3-årig pensionsperiod. Vi rekommenderar att du övergår till Azure Container Apps. Mer information finns i meddelandet om azure Spring Apps-pensionering.
Standardförbrukningen och den dedikerade planen kommer att vara inaktuell från och med den 30 september 2024, med en fullständig avstängning efter sex månader. Vi rekommenderar att du övergår till Azure Container Apps. Mer information finns i Migrera Azure Spring Apps Standard-förbrukning och dedikerad plan till Azure Container Apps.
Den här artikeln gäller för: ✔️ Basic/Standard ✔️ Enterprise
Den här artikeln visar hur du använder Azure Spring Apps-uppgiften 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 nyckeljobb.
I följande video beskrivs automatisering från slutpunkt till slutpunkt 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 Ansluta till Microsoft Azure. Se till att välja samma prenumeration som du använder för din Azure Spring Apps-tjänstinstans.
Skapa och distribuera appar
Nu kan du skapa och distribuera dina projekt med hjälp av en rad uppgifter. Följande Azure Pipelines-mall definierar variabler, en .NET Core-uppgift för att skapa programmet och en Azure Spring Apps-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'
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)
Konfigurera en Azure Spring Apps-instans och ett Azure DevOps-projekt
Använd först följande steg för att konfigurera en befintlig Azure Spring Apps-instans för användning med Azure DevOps.
- Gå till din Azure Spring Apps-instans och skapa sedan en ny app.
- Gå till Azure DevOps-portalen och skapa sedan ett nytt projekt under den valda organisationen. Om du inte har en Azure DevOps-organisation kan du skapa en kostnadsfritt.
- Välj Lagringsplatser och importera sedan Spring Boot-demokoden till lagringsplatsen.
Skapa en Azure Resource Manager-tjänstanslutning
Skapa sedan en Azure Resource Manager-tjänstanslutning till ditt Azure DevOps-projekt. Anvisningar finns i Ansluta till Microsoft Azure. Se till att välja samma prenumeration som du använder för din Azure Spring Apps-tjänstinstans.
Skapa och distribuera appar
Nu kan du skapa och distribuera dina projekt med hjälp av en rad 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 för att 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
mavenPomFile
fältet till "complete/pom.xml".Välj Visa assistent till höger och välj sedan mallen Azure Spring Apps .
Välj den tjänstanslutning som du skapade för din Azure-prenumeration och välj sedan din Azure Spring Apps-instans och appinstans.
Inaktivera Använd mellanlagringsdistribution.
Ange Paket eller mapp som slutförd/mål/spring-boot-complete-0.0.1-SNAPSHOT.jar.
Välj Lägg till för att lägga till den här uppgiften i pipelinen.
Dina pipelineinställningar ska 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 av Azure Spring Apps-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 Apps service> AppName: <app-name> DeploymentType: 'Artifacts' UseStagingDeployment: false DeploymentName: 'default' Package: ./target/your-result-jar.jar
Välj Spara och kör och vänta sedan tills jobbet har slutförts.
Blågröna distributioner
Distributionen som visas i föregående avsnitt tar emot programtrafik omedelbart efter distributionen. På så sätt kan du testa programmet i produktionsmiljön innan det tar emot någon kundtrafik.
Redigera pipelinefilen
Om du vill skapa programmet på samma sätt som 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 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
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 din Maven-version och publicera artefakt.
- Välj Azure Repos Git för din kodplats.
- Välj en lagringsplats där koden finns.
- Välj Maven-mallen och ändra filen för att ange fältet till .
complete/pom.xml
mavenPomFile
- Välj Visa assistent 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-jobb, 0 uppgift
- Välj för + att lägga till en uppgift i jobbet.
- Sök efter Azure Spring Apps-mallen och välj sedan Lägg till för att lägga till uppgiften i jobbet.
- Välj Distribuera Azure Spring Apps: för att redigera uppgiften.
- Fyll i den här uppgiften med din apps 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 den här 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 Steg.
Gå till Azure Spring Apps Deploy-uppgiften 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 ytterligare en Azure Spring Apps-uppgift i jobbet.
Ändra åtgärden till Ange produktionsdistribution.
Välj Spara och sedan Skapa version för att starta distributionen automatiskt.
Om du vill verifiera appens aktuella versionsstatus 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 Apps service>
AppName: <app-name>
DeploymentType: 'Artifacts'
UseStagingDeployment: false
DeploymentName: 'default'
Package: $(Build.SourcesDirectory)
Distribuera från anpassad avbildning
Om du vill distribuera direkt från en befintlig containeravbildning använder du följande pipelinemall.
- 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>'
Distribuera och ange en byggare (endast Enterprise-plan)
Om du använder Azure Spring Apps Enterprise-planen kan du också ange vilken byggare som ska användas för att distribuera åtgärder med hjälp av builder
alternativet, som du ser i följande exempel. Mer information finns i Använda Tanzu Build Service.
- 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>'