Ćwiczenie — wdrażanie przykładowej aplikacji Spring Boot
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.
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.
W witrynie Azure Portal przejdź do aplikacji internetowej usługi Azure App Service.
W panelu po lewej stronie rozwiń sekcję Deployment i wybierz Deployment Center.
W rozwijanym menu Źródło, w sekcji Ciągłe Wdrażanie (CI/CD), wybierz pozycję GitHub.
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).
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.Na ostatniej stronie przejrzyj wybrane opcje i wyświetl podgląd pliku przepływu pracy, który zostanie zatwierdzony w repozytorium.
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
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".
Następnie w tabeli po prawej stronie, pod Uruchamianie przepływu pracy, wybierz przebieg Dodaj lub zaktualizuj konfigurację wdrażania usługi App Service.
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.
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:
- Na karcie "Connect" wybierz pozycję "GitHub" (plik YAML).
- Na karcie "Wybierz" wybierz repozytorium GitHub zawierające szablon.
- Na karcie "Configure" wybierz opcję użycia "Existing Azure Pipelines YAML file".
- W ścieżce tym razem wybierz pozycję "/azuredevops/build_deploy.yml"
- 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:
- Wybierz Zmienne w prawym górnym rogu.
- Dodaj zmienną o nazwie serviceConnection z wartością jako nazwą połączenia z usługą.
- Wybierz pozycję OK w prawym dolnym rogu, aby zapisać zmienną.
- Dodaj drugą zmienną o nazwie webAppName z nazwą usługi App Service (ta sama wartość, jaka jest zdefiniowana w zmiennej Terraform "application_name").
- Wybierz pozycję OK, aby zapisać zmienną.
- Wybierz pozycję Zapisz w prawym dolnym rogu, aby zapisać obie zmienne.
Obejrzyj działanie rurociągu
- Wybierz &&, aby zapisać i uruchomić pipeline
- Tak jak zrobiłeś to dla potoku Provision, prześledź proces kompilacji przez poszczególne etapy i kroki.
- Sprawdź, czy aplikacja Java została wdrożona, połączona z bazą danych MySQL i zwracająca dane.
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.