使用 Terraform 佈建 Cloud Build 資源

HashiCorp Terraform 是一種基礎架構即程式碼 (IaC) 工具,可讓您佈建及管理雲端基礎架構。Terraform 提供稱為「供應商」的外掛程式,可讓您與雲端服務供應商和其他 API 互動。您可以使用 Terraform 供應商 Google Cloud佈建及管理 Google Cloud 資源,包括 Cloud Build。

本頁面將介紹如何搭配使用 Terraform 與 Cloud Build,包括 Terraform 的運作方式簡介,以及一些有助於開始搭配使用 Terraform 與 Google Cloud的資源。您也可以找到 Cloud Build 的 Terraform 參考文件連結、程式碼範例,以及使用 Terraform 佈建 Cloud Build 資源的指南。

如要瞭解如何開始使用 Terraform for Google Cloud,請參閱「安裝及設定 Terraform」或「Terraform for Google Cloud 快速入門」。

Terraform 的運作方式

Terraform 採用以設定為導向的宣告式語法,可用於描述要在 Google Cloud 專案中佈建的基礎架構。在一個或多個 Terraform 設定檔中撰寫這項設定後,您可以使用 Terraform CLI 將這項設定套用至 Cloud Build 資源。

以下步驟說明 Terraform 的運作方式:

  1. 您可以在 Terraform 設定檔中說明要佈建的基礎架構。您不需要編寫程式碼,說明如何佈建基礎架構。Terraform 會為您佈建基礎架構。
  2. 執行 terraform plan 指令,評估設定並產生執行計畫。您可以查看方案,並視需要進行變更。
  3. 執行 terraform apply 指令,該指令會執行下列動作:

    1. 系統會根據執行計畫,在背景中叫用對應的 Cloud Build API,佈建基礎架構。
    2. 這會建立 Terraform 狀態檔案,也就是將設定檔中的資源對應至實際基礎架構中資源的 JSON 檔案。Terraform 會使用這個檔案記錄基礎架構的最新狀態,並決定何時建立、更新及刪除資源。
    3. 執行 terraform apply 時,Terraform 會使用狀態檔案中的對應項目,比較現有基礎架構與程式碼,並視需要進行更新:

      • 如果設定檔中定義了資源物件,但狀態檔案中沒有,Terraform 就會建立該物件。
      • 如果狀態檔中存在資源物件,但設定與設定檔不同,Terraform 會更新資源,使其與設定檔相符。
      • 如果狀態檔中的資源物件與設定檔相符,Terraform 就不會變更資源。

Cloud Build 的 Terraform 資源

資源是 Terraform 語言的基本元素。每個資源區塊都會說明一或多個基礎架構物件,例如虛擬網路或運算執行個體。

下表列出適用於 Cloud Build 的 Terraform 資源:

Cloud Build 服務 Terraform 資源 資料來源
Cloud Build v1 google_cloudbuild_trigger
Cloud Build v2 google_cloudbuildv2_connection_iam_policy

Cloud Build 適用的 Terraform 導覽

下表列出 Cloud Build 的 Terraform 相關操作指南和教學課程:

指南 詳細資料
連結至 GitHub 存放區 本指南說明如何使用 Terraform 將 GitHub 存放區連線至 Cloud Build。
連結至 GitHub Enterprise 主機 本指南說明如何使用 Terraform 將 GitHub Enterprise 主機連線至 Cloud Build。
連結至 GitHub Enterprise 存放區 本指南說明如何使用 Terraform,將 GitHub Enterprise 存放區連線至 Cloud Build。
連結至 GitLab Enterprise Edition 主機 本指南說明如何使用 Terraform,將 GitLab Enterprise Edition 主機連線至 Cloud Build。
連結至 GitLab Enterprise Edition 存放區 本指南說明如何使用 Terraform,將 GitLab Enterprise Edition 存放區連至 Cloud Build。
連線至 Bitbucket Data Center 主機 本指南說明如何使用 Terraform 將 Bitbucket Data Center 主機連線至 Cloud Build。
連結至 Bitbucket Data Center 存放區 本指南說明如何使用 Terraform,將 Bitbucket Data Center 存放區連至 Cloud Build。
連線至 Bitbucket Cloud 主機 本指南說明如何使用 Terraform,將 Bitbucket Cloud 主機連線至 Cloud Build。
連線至 Bitbucket Cloud 存放區 本指南說明如何使用 Terraform,將 Bitbucket Cloud 存放區連線至 Cloud Build。
部署至 Compute Engine 本指南說明如何使用 Cloud Build 和 Terraform,在 Compute Engine 代管執行個體群組 (MIG) 中執行不停機的藍綠部署。

Cloud Build 適用的 Terraform 模組和藍圖

模組和藍圖可協助您自動佈建及管理大量資源。 Google Cloud 模組是一組可重複使用的 Terraform 設定檔,可建立 Terraform 資源的邏輯抽象概念。藍圖是可部署及重複使用的模組套件,也是實作及記錄特定解決方案的政策。

下表列出與 Cloud Build 相關的模組和藍圖:

模組或藍圖 詳細資料
安全無虞的 CI/CD 管道 這個模組可讓客戶快速部署安全的 CI/CD 管道,並實作「將安全性措施提前納入開發流程」一文中所述的許多功能。 Google Cloud
terraform-google-bootstrap 本單元有助於啟動機構,建立所有必要的資源和權限,以便開始使用 Cloud Foundation Toolkit (CFT)。 Google Cloud 如果使用者想將 Cloud Build 和 Cloud Source Repositories 用於基礎程式碼,這個模組包含一個子模組,可啟動所有必要資源。

後續步驟