Ć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 Maven GitHub, 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 portalu Azure App Service.

zrzut ekranu przedstawiający Centrum wdrażania usługi Azure App Service.

Centrum wdrażania usługi Azure App Service 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 Azure App Service.

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

  2. W panelu po lewej stronie rozwiń sekcję Deployment i wybierz Deployment Center.

  3. W rozwijanym menu Źródło, w sekcji Ciągłe Wdrażanie (CI/CD), wybierz pozycję GitHub.

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

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

    a. Wybierz repozytorium GitHub.
    b. W polu Branch wybierz main.
    c. W stosie 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.

    Notatka

    Możesz również wyzwolić przepływ pracy 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 pracywybierz pozycję "Zbuduj i wdróż aplikację JAR do usługi Azure Web App".

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

  3. Zaczekaj na zakończenie przebiegu przepływu pracy, a następnie w obszarze zadania Deploy w przebiegu przepływu pracy skopiuj adres URL w zadaniu Deploy, które wyświetla 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 polecenie git push w celu zatwierdzenia kodu, zostaje wyzwolona akcja kompilacji i wdrożenia, a aplikacja zostaje wdrożona.

Ważny

Ponowne uruchomienie konfiguracji akcji 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 danych:

  1. Na karcie "Connect" wybierz pozycję "GitHub" (plik YAML).
  2. Na karcie "Wybierz" wybierz repozytorium GitHub zawierające szablon.
  3. Na karcie "Configure" wybierz opcję użycia "Existing Azure Pipelines YAML file".
  4. W ścieżce tym razem wybierz pozycję "/azuredevops/build_deploy.yml"
  5. Wybierz pozycję Kontynuuj, aby przejść do karty "*Przegląd" i przejrzeć pipeline przed jego uruchomieniem.

Na ekranie Przejrzyj potok 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 "Build":

  • azureSubscription: Twoja subskrypcja platformy Azure
  • appType: Typ aplikacji internetowej
  • appName: nazwa Twojej istniejącej usługi aplikacji
  • pakiet: ś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 tego potoku:

  1. Wybierz Zmienne w prawym górnym rogu.
  2. Dodaj zmienną o nazwie serviceConnection z wartością jako nazwą połączenia z usługą.
  3. Wybierz pozycję OK w prawym dolnym rogu, aby zapisać zmienną.
  4. Dodaj drugą zmienną o nazwie webAppName z nazwą usługi App Service (ta sama wartość, jaka jest zdefiniowana w zmiennej Terraform "application_name").
  5. Wybierz pozycję OK, aby zapisać zmienną.
  6. Wybierz pozycję Zapisz w prawym dolnym rogu, aby zapisać obie zmienne.

Zrzut ekranu przedstawiający nowe zmienne.

Obejrzyj działanie rurociągu

  1. Wybierz &&, aby zapisać i uruchomić pipeline
  2. Tak jak zrobiłeś to dla potoku Provision, prześledź 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.

Zrzut ekranu przedstawiający nowe uruchomienie usługi Azure Pipeline.

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 polecenie git push, aby zatwierdzić kod w gałęzi głównej , pipeline kompilacji i wdrożenia jest wyzwalany, a aplikacja jest wdrażana.

Ważny

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ć Pipeline. 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 część to test wiedzy, aby sprawdzić, czego nauczyłeś się w tym module.