教學課程:使用 Azure Pipelines 在 CI/CD 中部署環境

持續整合與持續傳遞 (CI/CD) 是一種軟體開發方法,可協助小組將建置、測試及部署軟體變更的流程自動化。 CI/CD 可讓您更頻繁且更放心地發佈軟體變更。

在本教學課程中,您會了解如何將 Azure 部署環境整合到 Azure Pipelines CI/CD 管線。

開始本教學課程之前,請先檢閱 Azure 部署環境的重要概念,以熟悉部署環境的資源和概念。

在本教學課程中,您將瞭解如何:

  • 建立和設定 Azure Repos 存放庫
  • 設定環境類型
  • 設定服務連線
  • 建立管線
  • 建立環境

先決條件

建立和設定 Azure Repos 存放庫

  1. 登入您的 Azure DevOps 組織 (https://dev.azure.com/<your-organization>)。 將 <your-organization> 取代為您的專案識別碼。

  2. 選取您的專案

  3. 選取 [存放庫]>[檔案]。

  4. 從存放庫下拉式清單中,選取 [ 匯入存放庫]。

  5. 在 匯入 Git 儲存庫中,選擇或輸入以下內容:

    • 來源類型:Git
    • 複製 URL:https://github.com/Azure/deployment-environments.git (英文)

設定環境類型

環境類型會定義您的開發小組可以部署的環境類型。 您可以為每個環境類型套用不同的設定。 您可以在開發人員中心層級和專案層級建立環境類型。

若要建立開發人員中心環境類型:

  1. 登入 Azure 入口網站。

  2. 移至 Azure 部署環境。 在開發人員中心中,選取您的開發人員中心。

  3. 在側邊欄選單的 環境設定 中,選擇 環境類型,然後選擇 建立。

  4. 請依照以下步驟建立三種環境類型: 沙盒、 FunctionApp 和 WebApp。

    1. 在建立環境類型底下選取或輸入下列資訊,然後選取新增。

      名稱 價值觀
      名稱 輸入新環境類型的名稱。
      標籤 輸入標籤名稱和標籤值。
    2. 確認你的新環境類型是否出現在清單中。

若要建立專案環境類型:

  1. 在側邊欄選單的 管理 選項中,選擇 專案,然後選擇你想使用的專案。

  2. 在專案中,於 環境設定中選擇 環境類型,然後選擇 新增。

  3. 請依照以下步驟新增三種環境類型: 沙盒、 FunctionApp 和 WebApp。

    1. 在將環境類型新增至<專案名稱>中,輸入或選取下列資訊:

      名稱 價值觀
      型別 選擇一個開發中心層級的環境類型來啟用該專案。
      部署訂閱 選取已建立專案的月租方案。
      部署身分識別 選取系統指派的受控識別或使用者指派的受控識別,以代表使用者執行部署。
      環境創作者角色 選取提供環境資源存取權的角色。
      額外存取權限 選取使用者或 Microsoft Entra 群組,以指派環境資源上的特定角色。
      標籤 輸入標籤名稱和標籤值。 這些標籤會套用至建立為環境一部分的所有資源。
    2. 確認你的新環境類型是否出現在清單中。

設定服務連線

在 Azure Pipelines 中,您會在 Azure DevOps 專案中建立「服務連線」,以存取 Azure 訂用帳戶中的資源。

  1. 如果您沒有專案的使用者指派受控識別,請新增一個 (部分機器翻譯)。

    備註

    你可以使用三種身份選項之一: 應用程式註冊、 使用者指派的管理身份,或 系統指派的管理型身份。 應用程式註冊是最安全的選項。 若要使用應用程式註冊,您必須有適當的權限。 欲了解更多資訊,請參閱Azure Resource Manager服務連結特殊案例。

  2. 登入您的 Azure DevOps 組織 (https://dev.azure.com/<your-organization>)。 將 <your-organization> 取代為您的專案識別碼。

  3. 選取您的專案

  4. 選擇 專案設定。 在 管線中,選擇 服務連線>,建立服務連線。

  5. 在 [新增服務連線] 窗格中,選取 [Azure Resource Manager],然後選取 [下一步]。

  6. 輸入下列服務連線詳細資料,然後選取 [儲存] 以建立服務連線。

    領域 價值觀
    身分識別類型 受控識別
    受控識別的訂用帳戶 輸入包含受控識別的 Azure 訂用帳戶。
    受控識別的資源群組 輸入包含受控識別的資源群組。
    受控識別 輸入受控識別的名稱。
    服務連線的範圍層級 選擇 訂閱。
    服務連線訂閱 輸入裝載開發人員中心資源的 Azure 訂用帳戶識別碼。
    服務連線名稱 為服務連線輸入唯一的名稱。
    授予所有管線的存取許可權 選取此核取方塊。
  7. 選取 [儲存]。

向服務連線授與部署環境專案的存取權

部署環境會使用角色型存取控制來授與對部署環境資源執行特定活動的權限。 若要從 CI/CD 管線進行變更,您必須向受控識別授與部署環境使用者角色。

  1. 在 Azure 入口網站中,移至您的部署環境專案。

  2. 選取 [存取控制 (IAM)]>[新增]>[新增角色指派]。

  3. 在 角色 標籤中,搜尋並選擇工作功能角色列表中的 部署環境使用者 。 選取 下一步。

  4. 在 [成員] 索引標籤上,依序選取 [受控識別] 和 [選取成員]。

  5. 在 [選取受控識別] 索引標籤的 [受控識別] 下,依序選取 [專案] 身分識別、專案名稱和 [選取]。

  6. 在 [檢閱 + 指派] 索引標籤上,選取 [檢閱 + 指派] 以新增角色指派。

您現在可以使用 Azure Pipelines 工作流程定義中的服務連線,來存取您的部署環境。

向您的帳戶授與部署環境專案的存取權

若要檢視其他使用者建立的環境 (包括服務連線),您必須向您的帳戶授與部署環境專案的讀取存取權限。

  1. 在 Azure 入口網站中,移至您的部署環境專案。

  2. 選取 [存取控制 (IAM)]>[新增]>[新增角色指派]。

  3. 在 角色 索引標籤中,搜尋並從工作職能角色清單中選取 部署環境讀者。 選取 下一步。

  4. 在 [成員] 索引標籤上,選取 [選取成員],然後搜尋您自己的帳戶。

  5. 從清單中選取您的帳戶,然後選取 [選取]。

  6. 在 [檢閱 + 指派] 索引標籤上,選取 [檢閱 + 指派] 以新增角色指派。

您現在可以檢視您的 Azure Pipelines 工作流程所建立的環境了。

設定管線

編輯 Azure Repos 存放庫中的 azure-pipelines.yml 檔案以自訂管線。

在管線中,您會定義用來建立環境的步驟。 在此管線中,您會將用來建立環境的步驟定義為作業,而作業由一系列按順序執行的步驟構成,作為一個整體單元來運行。

若要自訂管線,您需要:

  • 指定要使用的服務連線。
  • 使用內嵌指令碼執行建立環境的 Azure CLI 命令。

Azure CLI 是一個命令行工具,會提供一組命令來使用 Azure 資源。 若要了解更多的 Azure CLI 命令,請參閱 az devcenter (部分機器翻譯)。

  1. 在 Azure DevOps 專案中,選取 [存放庫]>[檔案]。

  2. 在 [檔案] 窗格的 [.ado] 資料夾中,選取 [azure-pipelines.yml] 檔案。

  3. 在 azure-pipelines.yml 檔案中,編輯現有內容:

    • 將 <AzureServiceConnectionName> 取代為您先前建立的服務連線名稱。

    • 在 Inline script 輸入中,將下列每個預留位置取代為適合您 Azure 環境的值:

      預留位置 價值觀
      <DevCenterName> 開發人員中心的名稱。
      <DevCenterProjectName> 您專案的名稱。
      <DevCenterCatalogName> 目錄的名稱。
      <environment-definition-name> 請勿變更。 定義所使用的環境定義。
      <DevCenterProjectEnvironmentTypeName> 環境類型。
      <DeploymentEnvironmentInstanceToCreateName> 指定新環境的名稱。
      <parameters> 請勿變更。 參考定義環境參數的 JSON 檔案。
  4. 選取 [認可] 以儲存變更。

  5. 在 [認可變更] 窗格中,輸入認可訊息,然後選取 [認可]。

使用管線建立環境

接下來,執行管線以建立部署環境。

  1. 在 Azure DevOps 專案中,選取 [管線]。

  2. 選取您先前建立管線,然後選取 [執行管線]。

  3. 您可以先選取管線名稱,再選取 [執行],以檢查管線執行進度。 選取執行以查看管線執行的詳細資料。

  4. 您也可以在 Azure 入口網站中選取開發人員中心、選取專案,然後選取 [環境],以檢查環境建立進度。

您可以在 CI 和/或 CD 管線中的任何位置插入此作業。 想了解更多關於建立和管理管線的資訊,請參閱 Azure Pipelines 文件。

清理資源

不再需要本教學課程中建立的資源後,您可以將其刪除,以免產生費用。

使用下列命令刪除您在本教學課程中建立的環境:

az devcenter dev environment delete --dev-center-name <DevCenterName> --project-name <DevCenterProjectName> --name <DeploymentEnvironmentInstanceToCreateName> --yes