Övning – Distribuera ett Spring Boot-exempelprogram
I den här övningen använder du ett automatiserat arbetsflöde för att skapa och distribuera ditt Spring Boot-exempelprogram.
Konfigurera en GitHub-åtgärd för att distribuera exempelprogrammet
Nu när du har etablerat dina Azure-resurser kan du distribuera ditt Spring Boot-exempelprogram.
Om du vill skapa ditt Maven GitHub-arbetsflöde använder du det inbyggda guideverktyget för kontinuerlig integrering och kontinuerlig leverans (CI/CD) som är tillgängligt i Distributionscenter i Azure App Service-portalen.
Azure App Service Deployment Center genererar automatiskt en GitHub Actions-arbetsflödesfil som baseras på din programstack. Distribueringscentret tillägnar sedan filen till din GitHub-lagringsplats i rätt katalog. Distributionscentret länkar även din GitHub-åtgärd till en Azure App Service-publiceringsprofil.
I Azure-portalen går du till din Azure App Service-webbapp.
Expandera Deployment i den vänstra rutan och välj Deployment Center.
I rullgardinsmenyn Source, under Kontinuerlig distribution (CI/CD), välj GitHub.
Välj GitHub Actions. (Detta bör vara standard, men om det inte är det väljer du Ändra leverantör för att ladda leverantörsalternativen.)
Under Inställningargör du följande i rullgardinsmenyerna:
a. Välj din GitHub-lagringsplats.
b. För gren väljer du main.
c. För programstacken väljer du JAVA 8.På den sista sidan granskar du dina val och förhandsgranskar arbetsflödesfilen som ska läggas till i repositoriet.
Välj Spara för att spara arbetsflödesfilen i arkivet och börja omedelbart skapa och distribuera din app.
Notera
Du kan också utlösa GitHub Actions-arbetsflödet på lagringsplatsen genom att välja fliken Åtgärder, välja arbetsflödet skapa och distribuera och sedan välja Kör om jobb.
Verifiera GitHub Actions-bygget
På din GitHub-lagringsplats väljer du fliken Åtgärder och väljer sedan "Skapa och distribuera JAR-app till Azure Web App" under Alla arbetsflöden.
Gå sedan till bordet på högra sidan och välj arbetsflödeskörningen Lägg till eller uppdatera arbetsflödeskonfigurationen för App Service-distributionunder Arbetsflödeskörning.
Vänta tills arbetsflödeskörningen är klar. Gå sedan till jobbet Distribuera i arbetsflödet och kopiera URL:en i jobbet Distribuera som visar URL:en för Azure-webbappen.
Öppna slutligen URL:en i en webbläsare och kontrollera att Java-programmet har distribuerats, anslutits till MySQL-databasen och returnerar data.
Nästa steg
Grattis! Nu har du två GitHub Actions-arbetsflöden: en etableringsåtgärd och en build-and-deploy-åtgärd.
Varje gång du anger ett git push
kommando för att checka in koden utlöses din build-and-deploy-åtgärd och programmet distribueras.
Viktig
Om du kör integreringen med GitHub-åtgärden igen skapas inte dina resurser på nytt om de redan finns. Du måste ta bort resursgruppen eller resurserna manuellt och sedan köra GitHub-åtgärden igen.
När du kör din GitHub-åtgärd för att bygga och distribuera på nytt, kommer ditt program att ersättas.
Om du återskapar din App Service-instans måste du också ändra till den nya publiceringsprofilen. Du behöver bara ändra följande rad:
publish-profile: ${{ secrets.AzureAppService_PublishProfile_c1ee8d191003493b9c9e13a9b78ad2c3 }}
Konfigurera en Azure Pipeline för att distribuera exempelprogrammet
Precis som tidigare måste du skapa en Azure Pipeline för att skapa och distribuera ditt program.
I Azure DevOps går du till ditt projekt, väljer "Pipelines" och väljer "Ny pipeline" (övre högra hörnet).
Du får nu fyra flikar för att konfigurera pipelinen:
- På fliken "Connect" väljer du "GitHub" (YAML-fil).
- På fliken "Välj" väljer du den GitHub-lagringsplats som innehåller mallen.
- På fliken "Configure" väljer du att använda en "befintlig Azure Pipelines YAML-fil".
- I sökvägen väljer du den här gången "/azuredevops/build_deploy.yml"
- Välj Fortsätt för att gå till fliken "*Granska" och granska pipelinen innan du kör den.
På skärmen Granska yaml-pipelinen kontrollerar du Yaml-filen som du använder för att skapa din pipeline:
name: Build and Deploy
trigger:
- main
stages:
# Build your Spring Boot App using Maven
- stage: Build
displayName: Build stage
jobs:
- job: MavenPackageAndPublishArtifacts
displayName: Maven Package and Publish Artifacts
pool:
vmImage: 'ubuntu-latest'
steps:
- task: Maven@3
displayName: 'Maven Package'
inputs:
mavenPomFile: 'pom.xml'
- task: CopyFiles@2
displayName: 'Copy Files to artifact staging directory'
inputs:
SourceFolder: '$(System.DefaultWorkingDirectory)'
Contents: '**/target/*.?(war|jar)'
TargetFolder: $(Build.ArtifactStagingDirectory)
- upload: $(Build.ArtifactStagingDirectory)
artifact: drop
# Deploy to Azure using the AzureWebApp task using your Service Connection
- stage: Deploy
displayName: Deploy stage
dependsOn: Build
condition: succeeded()
jobs:
- deployment: DeployLinuxWebApp
displayName: Deploy Linux Web App
environment: 'production'
pool:
vmImage: 'ubuntu-latest'
strategy:
runOnce:
deploy:
steps:
- task: AzureWebApp@1
displayName: 'Azure Web App Deploy'
inputs:
azureSubscription: $(serviceConnection)
appType: webAppLinux
appName: '$(webAppName)'
package: '$(Pipeline.Workspace)/drop/**/target/*.?(war|jar)'
Nu ska vi titta på några av de fält som vi använder i konfigurationen "Build" :
- azureSubscription: Din Azure-prenumeration
- appType: Din webbapplikationstyp
- appName: Namnet på din befintliga apptjänst
- paket: Sökväg till filen för paketet eller en mapp som innehåller apptjänstens innehåll
Lägg till byggvariabler
Precis som med vår provisioneringspipeline måste du lägga till pipelinens variabler innan du sparar och kör build-and-deploy-pipelinen:
- Välj Variabler längst upp till höger.
- Lägg till en variabel med namnet serviceConnection med värdet som namnet på tjänstanslutningen.
- Välj OK i det nedre högra hörnet för att spara variabeln.
- Lägg till en andra variabel med namnet webAppName med ditt App Service-namn (samma värde som definieras i Terraform-variabeln "application_name").
- Välj OK för att spara variabeln.
- Välj Spara i det nedre högra hörnet för att spara båda variablerna.
Titta på hur pipelinen körs
- Välj && för att spara och köra pipelinen
- Precis som för din Provision pipeline kan du spåra byggprocessen genom vart och ett av stegen.
- Kontrollera att Java-programmet har distribuerats, anslutits till MySQL-databasen och returnerat data.
Nästa steg
Grattis! Nu har du två Azure Pipeline-arbetsflöden: en etableringspipeline och en bygg- och distributionspipeline.
Varje gång du anger ett git push
kommando för att checka in koden till huvudgrenen utlöses pipelinen för bygg och distribution och programmet distribueras.
Viktig
Om du kör etableringspipelinen igen skapas inte dina resurser igen om de redan finns. Du måste ta bort resursgruppen eller resurserna manuellt och sedan köra pipelinen igen. Du hittar mer information om hur du kan uppnå detta bättre i produktion i avsnittet Sammanfattning.
Om du kör din bygg- och distributionspipeline på nytt ersätts ditt program.
Nästa lektion är en kunskapstest för att se vad du har lärt dig i den här modulen.