Übung: Bereitstellen einer Spring Boot-Beispielanwendung
In dieser Übung verwenden Sie einen automatisierten Workflow, um Ihre Spring Boot-Beispielanwendung zu erstellen und bereitzustellen.
Einrichten einer GitHub-Aktion zum Bereitstellen der Beispielanwendung
Nachdem Sie Nun Ihre Azure-Ressourcen bereitgestellt haben, können Sie Ihre Beispiel-Spring Boot-Anwendung bereitstellen.
Um Ihren Maven GitHub-Workflow zu erstellen, verwenden Sie das integrierte Assistenttool für kontinuierliche Integration und kontinuierliche Bereitstellung (CI/CD), das im Deployment Center im Azure App Service-Portal verfügbar ist.

Das Azure App Service Deployment Center generiert automatisch eine Workflowdatei für GitHub-Aktionen, die auf Ihrem Anwendungsstapel basiert. Das Bereitstellungscenter überträgt die Datei dann in Ihr GitHub-Repository im richtigen Verzeichnis. Das Bereitstellungscenter verknüpft außerdem Ihre GitHub-Aktion mit einem Azure App Service-Veröffentlichungsprofil.
Wechseln Sie im Azure-Portal zu Ihrer Azure App Service-Web-App.
Erweitern Sie im linken Bereich die Bereitstellung und wählen Sie das Bereitstellungszentrum aus.
Wählen Sie in der Dropdownliste " Quelle " unter fortlaufender Bereitstellung (CI/CD)GitHub aus.
Wählen Sie GitHub-Aktionen aus. (Dies sollte die Standardeinstellung sein, aber wenn dies nicht der Fall ist, wählen Sie " Anbieter ändern " aus, um die Anbieteroptionen zu laden.)
Gehen Sie unter "Einstellungen" in den Dropdownlisten wie folgt vor:
a) Wählen Sie Ihr GitHub-Repository aus.
b. Wählen Sie als Branch main aus.
c. Wählen Sie für den Anwendungsstapel JAVA 8 aus.Überprüfen Sie auf der letzten Seite Ihre Auswahl und lassen Sie eine Vorschau der Workflow-Datei anzeigen, die im Repository gespeichert wird.
Wählen Sie "Speichern" aus, um die Workflowdatei in das Repository zu übernehmen, und beginnen Sie sofort mit dem Erstellen und Bereitstellen Ihrer App.
Hinweis
Sie können den GitHub-Aktionsworkflow auch in Ihrem Repository auslösen, indem Sie die Registerkarte "Aktionen " auswählen, den Workflow erstellen und bereitstellen und dann " Aufträge erneut ausführen" auswählen.
Bestätigen des GitHub Actions-Builds
Wählen Sie in Ihrem GitHub-Repository die Registerkarte "Aktionen " und dann auf der linken Seite unter "Alle Workflows" die Option "Erstellen und Bereitstellen der JAR-App in Azure Web App" aus.
Wählen Sie als Nächstes in der rechten Tabelle unter Workflow-Ausführung die Workflow-Ausführung Hinzufügen oder Aktualisieren der App Service-Bereitstellungskonfiguration aus.
Warten Sie, bis die Workflowausführung abgeschlossen ist, und kopieren Sie dann unter dem Auftrag "Bereitstellen" im Workflow die URL im Bereitstellungsauftrag , der die Azure Webapp-URL anzeigt.
Öffnen Sie schließlich die URL in einem Browser, und stellen Sie sicher, dass Ihre Java-Anwendung bereitgestellt, mit Ihrer MySQL-Datenbank verbunden ist und Daten zurückgibt.
Nächste Schritte
Glückwunsch! Sie verfügen nun über zwei GitHub Actions-Workflows: eine Bereitstellungsaktion und eine Build-and-Deploy-Aktion.
Jedes Mal, wenn Sie einen git push Befehl eingeben, um den Code zu übernehmen, wird die Build-and-Deploy-Aktion ausgelöst und Die Anwendung wird bereitgestellt.
Von Bedeutung
Wenn Sie die Bereitstellung Ihrer GitHub-Aktion erneut ausführen, werden Ihre Ressourcen nicht erneut erstellt, wenn sie bereits vorhanden sind. Sie müssen Ihre Ressourcengruppe oder Ressourcen manuell löschen und dann die GitHub-Aktion erneut ausführen.
Durch das erneute Ausführen Ihrer Build- und Bereitstellungs-GitHub-Aktion wird Ihre Anwendung ersetzt.
Wenn Sie Ihre App Service-Instanz erneut erstellen, müssen Sie auch zum neuen Veröffentlichungsprofil wechseln. Sie müssen nur die folgende Zeile ändern:
publish-profile: ${{ secrets.AzureAppService_PublishProfile_c1ee8d191003493b9c9e13a9b78ad2c3 }}
Einrichten einer Azure-Pipeline zum Bereitstellen der Beispielanwendung
Wie zuvor müssen Sie eine Azure-Pipeline erstellen, um Ihre Anwendung zu erstellen und bereitzustellen.
Wechseln Sie in Azure DevOps zu Ihrem Projekt, wählen Sie "Pipelines" und dann "Neue Pipeline" (obere rechte Ecke) aus.
Sie sehen nun vier Registerkarten zum Einrichten der Pipeline:
- Wählen Sie auf der Registerkarte "Verbinden" die Option "GitHub" (YAML-Datei) aus.
- Wählen Sie auf der Registerkarte "Auswählen" das GitHub-Repository aus, das Ihre Vorlage enthält.
- Wählen Sie auf der Registerkarte "Konfigurieren" die Option aus, um eine "Vorhandene YaML-Datei für Azure-Pipelines" zu verwenden.
- Wählen Sie im Pfad diesmal "/azuredevops/build_deploy.yml" aus.
- Wählen Sie "Weiter" , um zur Registerkarte "*Überprüfen" zu wechseln, und überprüfen Sie Ihre Pipeline, bevor Sie sie ausführen.
Sehen Sie sich auf dem Bildschirm YAML-Pipeline überprüfen die YAML-Datei an, die zum Erstellen der Pipeline verwendet wird:
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)'
Sehen wir uns einige der Felder an, die wir in der Konfiguration "Build" verwenden:
- azureSubscription: Ihr Azure-Abonnement
- appType: Ihr Web App-Typ
- appName: Der Name Ihres vorhandenen App-Diensts
- package: Der Dateipfad zum Paket oder einem Ordner, der Den App-Dienstinhalt enthält
Hinzufügen von Buildvariablen
Wie bei unserer Bereitstellungspipeline müssen Sie vor dem Speichern und Ausführen der Build-and-Deploy-Pipeline die Variablen Ihrer Pipeline hinzufügen:
- Wählen Sie "Variablen" oben rechts aus.
- Fügen Sie eine Variable namens "serviceConnection " mit dem Wert als Namen Ihrer Dienstverbindung hinzu.
- Wählen Sie "OK" in der unteren rechten Ecke aus, um die Variable zu speichern.
- Fügen Sie eine zweite Variable namens "webAppName " mit dem Namen "App Service" hinzu (derselbe Wert, der in Ihrer Terraform-Variablen "application_name" definiert ist).
- Wählen Sie "OK" aus, um die Variable zu speichern.
- Wählen Sie " Speichern" in der unteren rechten Ecke aus, um beide Variablen zu speichern.

Beobachten der Ausführung der Pipeline
- Auswählen von &&, um die Pipeline zu speichern und auszuführen
- Verfolgen Sie den Buildprozess wie bei der Bereitstellungspipeline durch die einzelnen Phasen und Schritte.
- Stellen Sie sicher, dass Ihre Java-Anwendung installiert ist, mit Ihrer MySQL-Datenbank verbunden und Daten zurückgibt.

Nächste Schritte
Glückwunsch! Sie verfügen jetzt über zwei Azure-Pipeline-Workflows: eine Bereitstellungspipeline und eine Erstellungs- und Bereitstellungspipeline.
Jedes Mal, wenn Sie einen git push Befehl eingeben, um den Code in die Hauptverzweigung zu übernehmen, wird die Build-and-Deploy-Pipeline ausgelöst und Die Anwendung wird bereitgestellt.
Von Bedeutung
Bei erneuter Ausführung der Bereitstellungspipeline werden Ihre Ressourcen nicht neu erstellt, wenn sie bereits vorhanden sind. Sie müssen Ihre Ressourcengruppe oder Ressourcen manuell löschen und dann die Pipeline erneut ausführen. Weitere Informationen dazu, wie Sie dies in der Produktion besser erreichen können, finden Sie im Abschnitt "Zusammenfassung".
Beim erneuten Ausführen Ihrer Build-and-Deploy-Pipeline wird Ihre Anwendung ersetzt.
Die nächste Lektion ist eine Wissensüberprüfung, um zu sehen, was Sie in diesem Modul gelernt haben.