使用 Azure Pipelines 建置和發行管線中的 DevTest 實驗室

本文提供如何將 DevTest Labs 應用於 Azure Pipelines 建置與發佈管線的資訊。

整體流程

基本流程是建立一個建置管線,其會執行以下任務:

  1. 建立應用程式代碼。
  2. 在 DevTest Labs 建立基礎環境。
  3. 用自訂資訊更新環境。
  4. 將應用程式部署到 DevTest Labs 環境
  5. 測試程式碼。

建置成功後,發行管線 會使用建置產物來部署到暫存或生產環境。

其中一個必要前提是,重建測試生態系統所需的所有資訊都已在建置工件中取得,包括 Azure 資源的配置。 由於 Azure 資源在使用時會產生成本,企業希望控制或追蹤這些資源的使用情況。 在某些情況下,用於建立和設定資源的 Azure Resource Manager 範本可能會由其他部門(如 IT 部門)管理。 而且,這些範本可能會儲存在不同的儲存庫中。 這使得在建立及測試建置版本時,出現了一個有趣的情況。 程式碼與設定都必須儲存在建置產物中,才能在生產環境中重建系統。

在建置與測試階段使用 DevTest Labs,你可以將 Azure Resource Manager 範本及支援檔案加入建置原始碼。 在發佈階段,你會部署測試時使用的相同配置到生產環境。 「建立 Azure DevTest Labs 環境」任務,只要設定正確,就能將 Resource Manager 範本儲存在建置工件中。 在這個例子中,你使用教學中的程式碼:在 Azure App 服務 中建置 .NET Core 和 SQL 資料庫網頁應用程式,來部署並測試 Azure 中的網頁應用程式。

顯示整體流程的圖表。

設定 Azure 資源

你必須事先製作幾件物品:

  • 兩個資料庫。 第一個是用教學程式碼和一個 Resource Manager 範本,裡面還有兩個虛擬機。 第二個會包含基本的 Azure Resource Manager 範本(現有設定)。
  • 一個用於部署生產程式碼與設定的資源群組。
  • 可連線到建置管線組態儲存庫的實驗室。 請將 Resource Manager 範本以 azuredeploy.json 和 metadata.json 的檔名簽入設定存放庫。 這個名稱讓 DevTest Labs 能夠辨識並部署這個範本。

建置流程會建立 DevTest Labs 環境並部署程式碼進行測試。

建立建構流程

在 Azure Pipelines 中,使用教學程式碼建立建置管線:在 Azure App 服務 中建構 .NET Core 與 SQL Database 網頁應用。 使用 ASP.NET Core 範本,該範本會填入建置、測試及發布程式碼所需的任務。

截圖顯示選取 ASP.NET 範本。

新增三個任務,在 DevTest Labs 建立環境並部署到環境中。

截圖顯示一個包含三個任務的管線。

建立環境任務

在 Azure DevTest Labs 建立環境任務中,使用下拉選單選擇以下值:

  • Azure 訂用帳戶
  • 實驗室名稱
  • 存放庫的名稱
  • 範本名稱(顯示環境儲存的資料夾)。

我們建議您使用頁面上的下拉選單,而非手動輸入資訊。 如果你手動輸入資訊,請輸入完全合格的 Azure 資源 ID。 此任務顯示的是易記名稱,而非資源識別碼。

環境名稱是 DevTest Labs 中顯示的名稱。 每個建置都應該有一個唯一的名稱。 例如:TestEnv$(Build.BuildId)。

你可以指定參數檔或參數,將資訊傳遞到 Resource Manager 範本中。

選擇「 根據環境範本輸出建立輸出變數 」並輸入參考名稱。 在此範例中,輸入 BaseEnv 作為參考名稱。 你在設定下一個任務時會使用這個 BaseEnv。

顯示「建立 Azure DevTest Labs 環境」任務的截圖。

人口環境任務

第二個任務(Azure DevTest Labs 填充環境任務)是更新現有的 DevTest Labs 環境。 建立環境任務會輸出 BaseEnv.environmentResourceId ,用來設定此任務的環境名稱。 此範例的 Resource Manager 範本有兩個參數——adminUserName 和 adminPassword。

顯示 Populate Azure DevTest Labs Environment 任務的螢幕擷取畫面。

App Service 部署任務

第三個任務是 Azure App 服務 部署任務。 應用程式類型設為 Web App,應用程式服務名稱設為 $(WebSite)。

顯示 App Service 部署任務的截圖。

設定釋放管線

你建立一個發佈流程,包含兩個任務:Azure 部署:建立或更新資源群組,以及部署 Azure App 服務。

第一個任務中,請指定資源群組的名稱與位置。 模板位置是一個連結項目。 如果 Resource Manager 範本包含連結範本,你必須實作自訂的資源群組部署。 模板在已公開的掉落遺物裡。 覆寫 Resource Manager 範本參數。 你可以保留剩下的設定,保留預設值。

第二個任務 Deploy Azure App 服務,指定 Azure 訂閱,選擇 Web App作為應用程式類型,$(WebSite) 作為 App Service 名稱。 你可以保留剩下的設定,保留預設值。

測試運行

現在兩條管線都已設定好,手動排隊建置並確認是否運作。 下一步是設定適當的建置觸發器,並將建置連接到發佈管線。

下一步

請參閱以下文章: