Esercizio: Distribuire un'applicazione Spring Boot di esempio

Completato

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.

Screenshot del Centro distribuzione del servizio app di Azure.

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.

  1. Nel portale di Azure, vai alla tua app Web di App Service di Azure.

  2. Nel riquadro sinistro espandere Distribuzione e selezionare Centro distribuzione.

  3. Nell'elenco a discesa Origine , in Distribuzione continua (CI/CD) selezionare GitHub.

  4. Selezionare GitHub Actions. Deve essere l'impostazione predefinita, ma in caso contrario, selezionare Cambia provider per caricare le opzioni del provider.

  5. 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.

  6. Nella pagina finale esaminare le selezioni e visualizzare in anteprima il file del flusso di lavoro di cui verrà eseguito il commit nel repository.

  7. 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

  1. 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".

  2. 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.

  3. 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.

  4. 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:

  1. Nella scheda "Connetti" selezionare "GitHub" (file YAML).
  2. Nella scheda "Seleziona" selezionare il repository GitHub contenente il modello.
  3. Nella scheda "Configura" selezionare per usare un file YAML di Azure Pipelines esistente.
  4. Nel percorso selezionare "/azuredevops/build_deploy.yml"
  5. 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:

  1. Selezionare Variabili in alto a destra.
  2. Aggiungere una variabile denominata serviceConnection con il valore come nome della connessione al servizio.
  3. Selezionare OK nell'angolo in basso a destra per salvare la variabile.
  4. Aggiungere una seconda variabile denominata webAppName con il nome del servizio app (stesso valore definito nella variabile Terraform "application_name").
  5. Selezionare OK per salvare la variabile.
  6. Selezionare Salva nell'angolo in basso a destra per salvare entrambe le variabili.

Screenshot che mostra le nuove variabili.

Monitorare l'esecuzione della pipeline

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

Screenshot che mostra la nuova esecuzione di Azure Pipeline.

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.