Ö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.
I den vänstra rutan expanderar du Distribution och väljer Distributionscenter.
I listrutan Källa under Kontinuerlig distribution (CI/CD) väljer du GitHub.
Välj GitHub Actions. (Detta bör vara standard, men om det inte är det väljer du Ändra provider för att läsa in provideralternativen.)
Gör följande i listrutorna under Inställningar:
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 checka in arbetsflödesfilen på lagringsplatsen 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 build-and-deploy och sedan välja Kör jobb igen.
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" till vänster under Alla arbetsflöden.
Välj sedan arbetsflödeskörningen Lägg till eller uppdatera arbetsflödeskonfigurationen för App Service-distribution i tabellen till höger under Arbetsflödeskörning.
Vänta tills arbetsflödeskörningen är klar och kopiera sedan URL:en i distributionsjobbet som visar Url:en för Azure-webbappen under Distributionsjobbet i arbetsflödet.
Ö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 "Anslut" väljer du "GitHub" (YAML-fil).
 - På fliken "Välj" väljer du den GitHub-lagringsplats som innehåller mallen.
 - På fliken "Konfigurera" 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 din pipeline-YAML granskar du YAML-filen som du kommer att använda 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 webbappstyp
 - appName: Namnet på din befintliga apptjänst
 - paket: Filsökvägen till paketet eller en mapp som innehåller appens tjänsteinnehå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").
 - Spara variabeln genom att välja OK .
 - 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 du gjorde för din etableringspipeline, spåra byggprocessen genom varje fas och steg.
 - 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 committa din kod till huvudgrenen utlöses din pipeline för bygg och distribution och ditt program 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.