Esercizio: Distribuire un'applicazione Spring Boot di esempio
In questo esercizio si userà un flusso di lavoro automatizzato per compilare e distribuire l'applicazione di esempio Spring Boot.
Configurare un'azione GitHub per distribuire l'applicazione di esempio
Dopo aver effettuato il provisioning delle risorse di Azure, è possibile distribuire l'applicazione Spring Boot di esempio.
Per creare il flusso di lavoro Maven GitHub, userai lo strumento predefinito di integrazione continua e consegna continua (CI/CD) disponibile presso il Centro di distribuzione nel portale Azure App Service.

Il Centro distribuzione del servizio app di Azure genera automaticamente un file del flusso di lavoro di GitHub Actions basato sullo stack di applicazioni. Il Centro di distribuzione esegue quindi il commit del file nel repository GitHub nella directory corretta. Il Centro distribuzione collega anche l'azione GitHub a un profilo di pubblicazione del servizio app di Azure.
Nel portale di Azure, vai alla tua app Web di App Service di Azure.
Nel riquadro sinistro espandere Distribuzione e selezionare Centro distribuzione.
Nell'elenco a discesa Origine , in Distribuzione continua (CI/CD) selezionare GitHub.
Selezionare GitHub Actions. Deve essere l'impostazione predefinita, ma in caso contrario, selezionare Cambia provider per caricare le opzioni del provider.
In Impostazioni, negli elenchi a discesa, eseguire le operazioni seguenti:
a) Seleziona il repository GitHub.
b. Per ramo selezionare main.
c. Per lo stack di applicazioni selezionare JAVA 8.Nella pagina finale esaminare le selezioni e visualizzare in anteprima il file del flusso di lavoro di cui verrà eseguito il commit nel repository.
Selezionare Salva per eseguire il commit del file del flusso di lavoro nel repository e iniziare immediatamente a compilare e distribuire l'app.
Annotazioni
È anche possibile attivare il flusso di lavoro di GitHub Actions nel repository selezionando la scheda Azioni , selezionando il flusso di lavoro di compilazione e distribuzione e quindi selezionando Riesegua processi.
Verificare la compilazione di GitHub Actions
Nel repository GitHub selezionare la scheda Azioni e quindi, sul lato sinistro, in Tutti i flussi di lavoro selezionare "Compila e distribuisci app JAR in App Web di Azure".
Quindi, nella tabella a destra, sotto Esecuzione del flusso di lavoro, selezionare l'esecuzione del flusso di lavoro Aggiungi o aggiorna la configurazione del flusso di lavoro di distribuzione dell'App Service.
Attendere il completamento dell'esecuzione del flusso di lavoro, quindi nel processo Distribuisci nell'esecuzione del flusso di lavoro copiare l'URL nel processo Distribuisci che visualizza l'URL dell'app Web di Azure.
Infine, aprire l'URL in un browser e verificare che l'applicazione Java sia distribuita, connessa al database MySQL e restituisca i dati.
Passaggi successivi
Congratulazioni! Sono ora disponibili due flussi di lavoro di GitHub Actions: un'azione di provisioning e un'azione di compilazione e distribuzione.
Ogni volta che si immette un git push comando per eseguire il commit del codice, viene attivata l'azione di compilazione e distribuzione e l'applicazione viene distribuita.
Importante
Quando si esegue di nuovo il provisioning dell'azione GitHub, le risorse non verranno ricreate se esistono già. Sarà necessario eliminare manualmente il gruppo di risorse o le risorse e quindi eseguire di nuovo l'azione GitHub.
La riesecuzione dell'azione GitHub per la compilazione e la distribuzione sostituirà l'applicazione.
Se si ricrea l'istanza del servizio app, è anche necessario passare al nuovo profilo di pubblicazione. È necessario modificare solo la riga seguente:
publish-profile: ${{ secrets.AzureAppService_PublishProfile_c1ee8d191003493b9c9e13a9b78ad2c3 }}
Configurare una pipeline di Azure per distribuire l'applicazione di esempio
Come in precedenza, è necessario creare una pipeline di Azure per compilare e distribuire l'applicazione.
In Azure DevOps passare al progetto, selezionare "Pipeline" e selezionare "Nuova pipeline" (angolo in alto a destra).
Vengono ora fornite quattro schede per configurare la Pipeline:
- Nella scheda "Connetti" selezionare "GitHub" (file YAML).
- Nella scheda "Seleziona" selezionare il repository GitHub contenente il modello.
- Nella scheda "Configura" selezionare per usare un file YAML di Azure Pipelines esistente.
- Nel percorso selezionare "/azuredevops/build_deploy.yml"
- Selezionare Continua per passare alla scheda "*Rivedi" ed esaminare la pipeline prima di eseguirla.
Nella schermata Esaminare il file YAML della pipeline esaminare il file Yaml che verrà usato per creare la 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)'
Di seguito vengono esaminati alcuni campi usati nella configurazione "Build":
- azureSubscription: sottoscrizione di Azure
- appType: tipo di app Web
- appName: nome del servizio app esistente
- pacchetto: Il percorso di file del pacchetto o di una cartella che contiene i contenuti del servizio app
Aggiungere variabili di compilazione
Come per la pipeline di provisioning, prima di salvare ed eseguire la pipeline di compilazione e distribuzione, è necessario aggiungere le variabili della pipeline:
- Selezionare Variabili in alto a destra.
- Aggiungere una variabile denominata serviceConnection con il valore come nome della connessione al servizio.
- Selezionare OK nell'angolo in basso a destra per salvare la variabile.
- Aggiungere una seconda variabile denominata webAppName con il nome del servizio app (stesso valore definito nella variabile Terraform "application_name").
- Selezionare OK per salvare la variabile.
- Selezionare Salva nell'angolo in basso a destra per salvare entrambe le variabili.

Monitorare l'esecuzione della pipeline
- Selezionare && per salvare ed eseguire la pipeline
- Come hai fatto per la tua pipeline di Provisioning, traccia il processo di build attraverso ogni fase e passaggio.
- Verificare che l'applicazione Java sia distribuita, connessa al database MySQL e restituendo i dati.

Passaggi successivi
Congratulazioni! Sono ora disponibili due flussi di lavoro di Azure Pipeline: una pipeline di provisioning e una pipeline di compilazione e distribuzione.
Ogni volta che si immette un git push comando per eseguire il commit del codice nel ramo principale , viene attivata la pipeline di compilazione e distribuzione e l'applicazione viene distribuita.
Importante
Quando si esegue nuovamente la pipeline di provisioning, le risorse non verranno ricreate se esistono già. Sarà necessario eliminare manualmente il gruppo di risorse o le risorse e quindi eseguire di nuovo la pipeline. Per altre informazioni su come ottenere un risultato migliore nell'ambiente di produzione, vedere la sezione Riepilogo.
Quando si esegue nuovamente la pipeline di compilazione e distribuzione, l'applicazione viene sostituita.
L'unità successiva è un controllo delle conoscenze per vedere cosa si è appreso in questo modulo.