Toepassingsimplementaties naar Azure Spring Cloud
In dit artikel wordt beschreven hoe u de Azure Spring Cloud azure-pijplijnen gebruikt om toepassingen te implementeren.
Met hulpprogramma's voor continue integratie en continue levering kunt u snel updates implementeren voor bestaande toepassingen met minimale inspanningen en risico's. Met Azure DevOps kunt u deze belangrijke taken organiseren en controleren.
In de volgende video wordt end-to-end automatisering beschreven met behulp van hulpprogramma's van uw keuze, waaronder Azure Pipelines.
Een verbinding Azure Resource Manager service maken
Maak eerst een Azure Resource Manager serviceverbinding met uw Azure DevOps-project. Zie voor instructies Verbinding maken naar Microsoft Azure. Zorg ervoor dat u hetzelfde abonnement selecteert dat u gebruikt voor uw Azure Spring Cloud service-exemplaar.
Apps bouwen en implementeren
U kunt nu uw projecten bouwen en implementeren met behulp van een reeks taken. De volgende Azure Pipelines-sjabloon definieert variabelen, een .NET Core-taak voor het bouwen van de toepassing en een Azure Spring Cloud om de toepassing te implementeren.
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)
Een Azure Spring Cloud en een Azure DevOps-project instellen
Gebruik eerst de volgende stappen om een bestaand exemplaar van Azure Spring Cloud in te stellen voor gebruik met Azure DevOps.
- Ga naar uw Azure Spring Cloud en maak vervolgens een nieuwe app.
- Ga naar de Azure DevOps-portal en maak een nieuw project onder uw gekozen organisatie. Als u geen Azure DevOps-organisatie hebt, kunt u er gratis een maken.
- Selecteer Opslagplaatsen en importeer vervolgens de Spring Boot democode in de opslagplaats.
Een verbinding Azure Resource Manager service maken
Maak vervolgens een Azure Resource Manager serviceverbinding met uw Azure DevOps-project. Zie voor instructies Verbinding maken naar Microsoft Azure. Zorg ervoor dat u hetzelfde abonnement selecteert dat u gebruikt voor uw Azure Spring Cloud service-exemplaar.
Apps bouwen en implementeren
U kunt nu uw projecten bouwen en implementeren met behulp van een reeks taken. In de volgende secties ziet u verschillende opties voor het implementeren van uw app met behulp van Azure DevOps.
Implementeren met behulp van een pijplijn
Volg deze stappen om te implementeren met behulp van een pijplijn:
Selecteer Pijplijnen en maak vervolgens een nieuwe pijplijn met een Maven-sjabloon.
Bewerk het bestand azure-pipelines.yml om het veld in te stellen op
mavenPomFile'complete/pom.xml'.Selecteer Assistent aan de rechterkant tonen en selecteer vervolgens de Azure Spring Cloud sjabloon.
Selecteer de serviceverbinding die u hebt gemaakt voor uw Azure-abonnement en selecteer vervolgens uw Spring Cloud-exemplaar en app-exemplaar.
Schakel Faseringsimplementatie gebruiken uit.
Stel Pakket of map in op complete/target/spring-boot-complete-0.0.1-SNAPSHOT.jar.
Selecteer Toevoegen om deze taak toe te voegen aan uw pijplijn.
Uw pijplijninstellingen moeten overeenkomen met de volgende afbeelding.
U kunt uw projecten ook bouwen en implementeren met behulp van de volgende pijplijnsjabloon. In dit voorbeeld wordt eerst een Maven-taak voor het bouwen van de toepassing definieert, gevolgd door een tweede taak die het JAR-bestand implementeert met behulp van de Azure Spring Cloud-taak voor 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.jarSelecteer Opslaan en uitvoeren en wacht tot de taak is uitgevoerd.
Blauw-groene implementaties
De implementatie die in de vorige sectie wordt weergegeven, ontvangt toepassingsverkeer direct na de implementatie. Hiermee kunt u de toepassing testen in de productieomgeving voordat deze klantverkeer ontvangt.
Het pijplijnbestand bewerken
Als u de toepassing op dezelfde manier wilt bouwen als eerder is weergegeven en deze wilt implementeren in een faseringsimplementatie, gebruikt u de volgende sjabloon. In dit voorbeeld moet de faseringsimplementatie al bestaan. Zie Blauw-groene implementatiestrategieën voor een alternatieve benadering.
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
Gebruik de sectie Releases
In de volgende stappen ziet u hoe u een blauw-groene implementatie kunt inschakelen in de sectie Releases.
Selecteer Pijplijnen en maak een nieuwe pijplijn voor uw Maven-build en publiceer artefact.
- Selecteer Azure Repos Git als uw codelocatie.
- Selecteer een opslagplaats waar uw code zich bevindt.
- Selecteer de Maven-sjabloon en wijzig het bestand om het veld in
mavenPomFilete stellen opcomplete/pom.xml. - Selecteer Aan de rechterkant Assistent tonen en selecteer de sjabloon Buildartefacten publiceren.
- Stel Pad in om te publiceren naar complete/target/spring-boot-complete-0.0.1-SNAPSHOT.jar.
- Selecteer Opslaan en uitvoeren.
Selecteer Releases en vervolgens Release maken.
Voeg een nieuwe pijplijn toe en selecteer Lege taak om een taak te maken.
Selecteer onder Fasen de taak regel 1, 0
- Selecteer de + om een taak aan de taak toe te voegen.
- Zoek de sjabloon Azure Spring Cloud en selecteer vervolgens Toevoegen om de taak aan de taak toe te voegen.
- Selecteer Azure Spring Cloud Implementeren: om de taak te bewerken.
- Vul deze taak in met de gegevens van uw app en schakel vervolgens Faseringsimplementatie gebruiken uit.
- Schakel Een nieuwe faseringsimplementatie maken in als deze nog niet bestaat en voer een naam in Implementatie in.
- Selecteer Opslaan om deze taak op te slaan.
- Selecteer OK.
Selecteer Pijplijn en selecteer vervolgens Een artefact toevoegen.
- Selecteer onder Bron (build-pijplijn) de pijplijn die u eerder hebt gemaakt.
- Selecteer Toevoegen en vervolgens Opslaan.
Selecteer 1 taak, 1 taak onder Fasen.
Navigeer naar Azure Spring Cloud deploy-taak in fase 1 en selecteer vervolgens het beletselteken naast Pakket of map.
Selecteer spring-boot-complete-0.0.1-SNAPSHOT.jar in het dialoogvenster en selecteer vervolgens OK.
Selecteer de + om een andere Azure Spring Cloud aan de taak toe te voegen.
Wijzig de actie in Productie-implementatie instellen.
Selecteer Opslaan en vervolgens Release maken om de implementatie automatisch te starten.
Selecteer Release weergeven om de huidige releasestatus van uw app te controleren. Nadat deze taak is voltooid, gaat u naar de Azure Portal om de status van uw app te controleren.
Implementeren vanuit de bron
Gebruik de volgende pijplijnsjabloon om rechtstreeks in Azure te implementeren zonder een afzonderlijke buildstap.
- 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)