練習 - 部署 Spring Boot 範例應用程式

已完成

在此練習中,您將使用自動化工作流程來建置和部署 Spring Boot 範例應用程式。

設定 GitHub 動作以部署範例應用程式

現在您已佈建 Azure 資源,您可以部署範例 Spring Boot 應用程式。

若要建立 Maven GitHub 工作流程,您將使用 Azure App Service 入口網站中部署中心提供的內建持續整合和持續傳遞 (CI/CD) 精靈工具。

Azure App Service 部署中心的螢幕快照。

Azure App Service 部署中心會自動產生以應用程式堆疊為基礎的 GitHub Actions 工作流程檔案。 部署中心接著會將檔案提交至 GitHub 存放庫中的正確目錄。 部署中心也會將您的 GitHub 動作連結至 Azure App Service 發佈配置檔。

  1. 在 Azure 入口網站中,移至您的 Azure App Service Web 應用程式。

  2. 在左窗格中,展開 [ 部署 ],然後選取 [部署中心]。

  3. 在 [ 來源 ] 下拉式清單中,於 [ 持續部署][CI/CD] 下,選取 [GitHub]。

  4. 選取 [GitHub Actions]。 (這應該是預設值,但如果不是,請選取 [變更提供者 ] 以載入提供者選項。

  5. 在 [ 設定] 下拉式清單中,執行下列動作:

    一。 選取您的 GitHub 存放庫。
    b。 針對分支,選取 [主要]
    c. 針對應用程式堆疊,選取 [JAVA 8]。

  6. 在最後一個頁面上,檢閱您選擇的項目,並預覽將提交至存放庫的流程檔案。

  7. 選取 [儲存 ] 將工作流程檔案認可至存放庫,然後立即開始建置和部署您的應用程式。

    備註

    您也可以選取 [ 動作 ] 索引卷標、選取 建置和部署 工作流程,然後選取 [重新執行作業],以觸發存放庫中的 GitHub Actions 工作流程。

確認 GitHub Actions 組建

  1. 在 GitHub 存放庫中,選取 [ 動作] 索引卷標,然後在左側的 [ 所有工作流程] 底下,選取 [建置 JAR 應用程式並將其部署至 Azure Web 應用程式]。

  2. 接下來,在右側數據表的 [ 工作流程執行] 下,選取工作流程執行 [新增或更新 App Service 部署工作流程組態]。

  3. 等候工作流程執行完成,然後在工作流程執行的 [部署 作業] 下,複製顯示 Azure Webapp URL 的 [ 部署 作業] 中的 URL。

  4. 最後,在瀏覽器中開啟 URL,並確認您的 Java 應用程式已部署、連線至 MySQL 資料庫,並傳回數據。

後續步驟

祝賀! 您現在有兩個 GitHub Actions 工作流程:布建動作和建置和部署動作。

每次您輸入 git push 命令來認可程序代碼時,就會觸發建置和部署動作,並部署您的應用程式。

這很重要

重新執行您的 GitHub 動作佈建不會重新建立您的資源 (如果資源已存在)。 您必須手動刪除您的資源群組或資源,然後重新執行 GitHub 動作。

重新執行建置和部署 GitHub 動作將會取代您的應用程式。

如果您重新建立 App Service 實例,則也需要變更為新的發行設定檔。 您只需要變更下列這一行:

publish-profile: ${{ secrets.AzureAppService_PublishProfile_c1ee8d191003493b9c9e13a9b78ad2c3 }}

設定 Azure Pipeline 以部署範例應用程式

和之前一樣,您必須建立 Azure Pipeline 來建置和部署您的應用程式。

在 Azure DevOps 中,移至您的項目,選取 [管線],然後選取 [新增管線] (右上角)。

您現在將得到四個索引標籤來設定管線:

  1. 在 [連線] 索引標籤上,選取 [GitHub] (YAML 檔案)。
  2. 在 [選取] 索引標籤上,選取包含範本的 GitHub 存放庫。
  3. 在 [設定] 分頁上,選取現有的 [Azure Pipelines YAML 檔案]。
  4. 在路徑中,這次選取 “/azuredevops/build_deploy.yml”
  5. 選取 [繼續] 以移至 [檢閱] 索引標籤,檢閱您的管線之後再執行。

在 [ 檢閱管線 YAML ] 畫面上,檢查您將用來建立管線的 Yaml 檔案:

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)'

以下是我們在「建構」組態中使用的一些字段:

  • azureSubscription:您的 Azure 訂用帳戶
  • appType:您的 Web 應用程式類型
  • appName:現有App Service 的名稱
  • package:套件的檔案路徑或包含 App Service 內容的資料夾

新增組建變數

如同我們的佈建管線,在儲存並執行建置和部署管線之前,您需要新增管線的變數:

  1. 選取右上方的 [變數 ]。
  2. 將名為 serviceConnection 的變數新增為服務連線的名稱。
  3. 選取右下角的 [確定 ] 以儲存變數。
  4. 使用您的 App Service 名稱新增名為 webAppName 的第二個變數(Terraform 變數 “application_name” 中定義的相同值)。
  5. 選取 [確定 ] 以儲存變數。
  6. 選取右下角的 [儲存 ] 以儲存這兩個變數。

顯示新變數的螢幕快照。

監看管線執行

  1. 選取 && 以儲存並執行管線
  2. 如同您針對佈建管線所做的一樣,您可以透過每個階段和步驟追蹤組建流程。
  3. 確認已部署 Java 應用程式、連線至 MySQL 資料庫,以及傳回數據。

螢幕擷取畫面顯示新的 Azure Pipeline 執行。

後續步驟

祝賀! 您現在有兩個 Azure Pipeline 工作流程:布建管線和建置和部署管線。

每次您輸入 git push 命令以將程式代碼認可至 main 分支時,都會觸發建置和部署管線,並部署您的應用程式。

這很重要

重新執行佈建管線不會重新建立您的資源 (如果資源已存在)。 您必須手動刪除您的資源群組或資源,然後重新執行管線。 您可以在 [摘要] 區段中找到有關如何在生產環境中達成此目標的詳細資訊。

重新執行您的建置和部署流程將會替換您的應用程式。

下一個單元是一個知識檢定,以查看您在本課程模組中學到的內容。