Övning – Distribuera ett Spring Boot-exempelprogram

Slutförd

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.

Screenshot of the Azure App Service Deployment Center.

Azure App Service Deployment Center genererar automatiskt en GitHub Actions-arbetsflödesfil som baseras på din programstack. Distributionscentret checkar sedan in filen till din GitHub-lagringsplats i rätt katalog. Distributionscentret länkar även din GitHub-åtgärd till en Azure App Service-publiceringsprofil.

  1. I Azure-portalen går du till din Azure App Service-webbapp.

  2. I den vänstra rutan expanderar du Distribution och väljer Distributionscenter.

  3. I listrutan Källa under Kontinuerlig distribution (CI/CD) väljer du GitHub.

  4. Välj GitHub Actions. (Detta bör vara standardvärdet, men om det inte är det väljer du Ändra provider för att läsa in provideralternativen.)

  5. Under Inställningar gör du följande i listrutorna:

    a. Välj din GitHub-lagringsplats.
    b. För gren väljer du main.
    c. För programstacken väljer du JAVA 8.

  6. På den sista sidan granskar du dina val och förhandsgranskar arbetsflödesfilen som ska checkas in på lagringsplatsen.

  7. Välj Spara för att checka in arbetsflödesfilen på lagringsplatsen och börja omedelbart skapa och distribuera din app.

    Kommentar

    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.

Bekräfta GitHub Actions-versionen

  1. 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.

  2. 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.

  3. 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.

  4. Ö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

Klar! 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.

Viktigt!

Om du kör etableringen av GitHub-åtgärden igen skapas inte dina resurser igen om de redan finns. Du måste ta bort resursgruppen eller resurserna manuellt och sedan köra GitHub-åtgärden igen.

Om du kör din GitHub-åtgärd för att skapa och distribuera igen ersätts ditt program.

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:

  1. På fliken "Anslut" väljer du "GitHub" (YAML-fil).
  2. På fliken "Välj" väljer du den GitHub-lagringsplats som innehåller mallen.
  3. På fliken "Konfigurera" väljer du att använda en "Befintlig AZURE Pipelines YAML-fil".
  4. I sökvägen väljer du den här gången "/azuredevops/build_deploy.yml"
  5. 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 ska 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 innehållet i apptjänsten

Lägg till byggvariabler

Precis som med vår etableringspipeline måste du lägga till pipelinens variabler innan du sparar och kör pipelinen build-and-deploy:

  1. Välj Variabler längst upp till höger.
  2. Lägg till en variabel med namnet service Anslut ion med värdet som namnet på din tjänst Anslut ion.
  3. Välj OK i det nedre högra hörnet för att spara variabeln.
  4. Lägg till en andra variabel med namnet webAppName med ditt App Service-namn (samma värde som definieras i Terraform-variabeln "application_name").
  5. Spara variabeln genom att välja OK .
  6. Välj Spara i det nedre högra hörnet för att spara båda variablerna.

Screenshot displaying the new variables.

Titta på pipelinekörningen

  1. Välj && för att spara och köra pipelinen
  2. Precis som för din etableringspipeline kan du spåra byggprocessen genom vart och ett av stegen.
  3. Kontrollera att Java-programmet har distribuerats, anslutits till MySQL-databasen och returnerat data.

Screenshot displaying the new Azure Pipeline run.

Nästa steg

Klar! 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.

Viktigt!

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.