Ćwiczenie — wdrażanie przykładowej aplikacji Spring Boot

Ukończone

W tym ćwiczeniu użyjesz zautomatyzowanego przepływu pracy do skompilowania i wdrożenia przykładowej aplikacji Spring Boot.

Konfigurowanie akcji usługi GitHub w celu wdrożenia przykładowej aplikacji

Po aprowizacji zasobów platformy Azure możesz wdrożyć przykładową aplikację Spring Boot.

Aby utworzyć przepływ pracy usługi GitHub programu Maven, użyjesz wbudowanego narzędzia kreatora ciągłej integracji i ciągłego dostarczania (CI/CD), które jest dostępne w Centrum wdrażania w portalu usługi aplikacja systemu Azure.

Screenshot of the Azure App Service Deployment Center.

Centrum wdrażania usługi aplikacja systemu Azure automatycznie generuje plik przepływu pracy funkcji GitHub Actions oparty na stosie aplikacji. Następnie Centrum wdrażania zatwierdza plik w repozytorium GitHub we właściwym katalogu. Centrum wdrażania łączy również akcję usługi GitHub z profilem publikowania usługi aplikacja systemu Azure.

  1. W witrynie Azure Portal przejdź do aplikacji internetowej usługi aplikacja systemu Azure Service.

  2. W okienku po lewej stronie rozwiń węzeł Wdrożenie i wybierz pozycję Centrum wdrażania.

  3. Na liście rozwijanej Źródło w obszarze Ciągłe wdrażanie (CI/CD) wybierz pozycję GitHub.

  4. Wybierz pozycję GitHub Actions. (Powinna to być wartość domyślna, ale jeśli tak nie jest, wybierz pozycję Zmień dostawcę , aby załadować opcje dostawcy).

  5. W obszarze Ustawienia na listach rozwijanych wykonaj następujące czynności:

    a. Wybierz repozytorium GitHub.
    b. W polu Gałąź wybierz pozycję main.
    c. W obszarze stosu aplikacji wybierz pozycję JAVA 8.

  6. Na ostatniej stronie przejrzyj wybrane opcje i wyświetl podgląd pliku przepływu pracy, który zostanie zatwierdzony w repozytorium.

  7. Wybierz pozycję Zapisz , aby zatwierdzić plik przepływu pracy w repozytorium i natychmiast rozpocząć kompilowanie i wdrażanie aplikacji.

    Uwaga

    Możesz również wyzwolić przepływ pracy funkcji GitHub Actions w repozytorium, wybierając kartę Akcje , wybierając przepływ pracy kompilacji i wdrażania , a następnie wybierając pozycję Uruchom ponownie zadania.

Potwierdzanie kompilacji funkcji GitHub Actions

  1. W repozytorium GitHub wybierz kartę Akcje, a następnie po lewej stronie w obszarze Wszystkie przepływy pracy wybierz pozycję "Kompiluj i wdróż aplikację JAR w aplikacji internetowej platformy Azure".

  2. Następnie w tabeli po prawej stronie w obszarze Przebieg przepływu pracy wybierz przebieg przepływu pracy Dodaj lub zaktualizuj konfigurację przepływu pracy wdrażania usługi App Service.

  3. Zaczekaj na zakończenie przebiegu przepływu pracy, a następnie w obszarze Zadania wdrażania w przebiegu przepływu pracy skopiuj adres URL w zadaniu wdróż , w którym jest wyświetlany adres URL aplikacji internetowej platformy Azure.

  4. Na koniec otwórz adres URL w przeglądarce i sprawdź, czy aplikacja Java została wdrożona, połączona z bazą danych MySQL i zwraca dane.

Następne kroki

Gratulacje! Masz teraz dwa przepływy pracy funkcji GitHub Actions: akcję aprowizacji i akcję kompilowania i wdrażania.

Za każdym razem, gdy wprowadzisz git push polecenie w celu zatwierdzenia kodu, akcja kompilowania i wdrażania jest wyzwalana i wdrażana aplikacja.

Ważne

Ponowne zainicjowanie aprowizacji akcji usługi GitHub nie spowoduje ponownego utworzenia zasobów, jeśli już istnieją. Musisz ręcznie usunąć grupę zasobów lub zasoby, a następnie ponownie uruchomić akcję GitHub.

Ponowne uruchomienie akcji kompilacji i wdrożenia usługi GitHub spowoduje zastąpienie aplikacji.

Jeśli ponownie utworzysz wystąpienie usługi App Service, musisz również zmienić profil publikowania na nowy. Musisz zmienić tylko następujący wiersz:

publish-profile: ${{ secrets.AzureAppService_PublishProfile_c1ee8d191003493b9c9e13a9b78ad2c3 }}

Konfigurowanie usługi Azure Pipeline w celu wdrożenia przykładowej aplikacji

Tak jak wcześniej, należy utworzyć usługę Azure Pipeline w celu kompilowania i wdrażania aplikacji.

W usłudze Azure DevOps przejdź do projektu, wybierz pozycję "Potoki" i wybierz pozycję "Nowy potok" (prawy górny róg).

Teraz otrzymasz cztery karty do skonfigurowania potoku:

  1. Na karcie "Połączenie" wybierz pozycję "GitHub" (plik YAML).
  2. Na karcie "Wybierz" wybierz repozytorium GitHub zawierające szablon.
  3. Na karcie "Konfiguruj" wybierz opcję użycia "Istniejący plik YAML usługi Azure Pipelines".
  4. W ścieżce tym razem wybierz pozycję "/azuredevops/build_deploy.yml"
  5. Wybierz pozycję Kontynuuj , aby przejść do karty "*Przegląd" i przejrzeć potok przed jego uruchomieniem.

Na ekranie Przeglądanie potoku YAML sprawdź plik Yaml, którego użyjesz do utworzenia potoku:

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)'

Przyjrzyjmy się niektórym polam używanym w konfiguracji "Kompilacja":

  • azureSubscription: Twoja subskrypcja platformy Azure
  • appType: Typ aplikacji internetowej
  • appName: nazwa istniejącej usługi app Service
  • package: ścieżka pliku do pakietu lub folderu zawierającego zawartość usługi App Service

Dodawanie zmiennych kompilacji

Podobnie jak w przypadku potoku aprowizacji, przed zapisaniem i uruchomieniem potoku kompilacji i wdrożenia należy dodać zmienne potoku:

  1. Wybierz pozycję Zmienne w prawym górnym rogu.
  2. Dodaj zmienną o nazwie service Połączenie ion z wartością jako nazwą Połączenie usługi.
  3. Wybierz przycisk OK w prawym dolnym rogu, aby zapisać zmienną.
  4. Dodaj drugą zmienną o nazwie webAppName z nazwą usługi App Service (taką samą wartość zdefiniowaną w zmiennej Terraform "application_name").
  5. Wybierz przycisk OK , aby zapisać zmienną.
  6. Wybierz pozycję Zapisz w prawym dolnym rogu, aby zapisać obie zmienne.

Screenshot displaying the new variables.

Obejrzyj przebieg potoku

  1. Wybierz pozycję && , aby zapisać i uruchomić potok
  2. Podobnie jak w przypadku potoku aprowizacji , prześledzić proces kompilacji przez poszczególne etapy i kroki.
  3. Sprawdź, czy aplikacja Java została wdrożona, połączona z bazą danych MySQL i zwracająca dane.

Screenshot displaying the new Azure Pipeline run.

Następne kroki

Gratulacje! Masz teraz dwa przepływy pracy usługi Azure Pipeline: potok aprowizacji i potok kompilacji i wdrażania.

Za każdym razem, gdy wprowadzisz git push polecenie w celu zatwierdzenia kodu w gałęzi głównej, potok kompilacji i wdrożenia jest wyzwalany i wdrażana aplikacja.

Ważne

Ponowne uruchomienie potoku aprowizacji nie spowoduje ponownego utworzenia zasobów, jeśli już istnieją. Musisz ręcznie usunąć grupę zasobów lub zasoby, a następnie ponownie uruchomić potok. Więcej informacji na temat tego, jak lepiej to osiągnąć w środowisku produkcyjnym, można znaleźć w sekcji Podsumowanie.

Ponowne uruchomienie potoku kompilacji i wdrożenia spowoduje zastąpienie aplikacji.

Następna lekcja to test wiedzy, aby zobaczyć zdobytą wiedzę w tym module.