預覽部署更新

本頁面說明如何使用 Infrastructure Manager,預覽 Terraform 設定中定義的資源部署作業。

預覽畫面會說明執行特定 Terraform 設定的操作。建立新部署作業或更新部署作業前,您可以預覽部署作業,確認預計佈建的資源。

預覽會執行 Terraform plan 指令。本頁面假設您熟悉 Terraform。詳情請參閱「Terraform 和 Infrastructure Manager」。

如要建立預覽,Terraform 設定必須與其中一個支援的 Terraform 版本相容。

事前準備

  1. 啟用 Infra Manager。
  2. 確認您具備建立預先發布版所需的 IAM 權限:roles/config.admin。
  3. 確認您有具備必要權限的服務帳戶。詳情請參閱「設定服務帳戶」。
  4. 找出要預覽的 Terraform 設定。請確保這項 Terraform 設定符合限制,包括不含機密資料。

預覽部署作業更新

用於更新部署作業的 Terraform 設定,可以位於儲存空間 bucket 或 Git 存放區。

您也可以使用這項 Terraform 設定預覽更新。

使用儲存在 Cloud Storage bucket 的 Terraform 設定預覽

更新部署作業時,部分現有資源可能不會變更。預覽更新時,系統會顯示預計佈建或刪除的資源,以及不打算修改的資源。

  1. 找出要更新的部署作業。

  2. 請務必將 Terraform 設定上傳至 Cloud Storage bucket。詳情請參閱「將設定上傳至 Storage bucket」。

    儲存空間 bucket 可讓您控管設定的存取權。您也可以部署儲存在 Git 存放區或本機電腦中的 Terraform 設定。

  3. 如要預覽更新,請按照下列步驟操作:

    
        
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    gcloud infra-manager previews create projects/PROJECT_ID/locations/LOCATION/previews/PREVIEW_ID \
    --service-account projects/SERVICE_ACCOUNT_PROJECT_ID/serviceAccounts/SERVICE_ACCOUNT \
    --deployment=projects/PROJECT_ID/locations/LOCATION/deployments/DEPLOYMENT_ID \
    --gcs-source gs://BUCKET_NAME/OBJECT_NAME \
    --input-values=INPUT_1_NAME=VALUE,INPUT_2_NAME=VALUE \
    --tf-version-constraint=TERRAFORM_VERSION \
    --provider-source=SERVICE_MAINTAINED

    更改項目:

    • PROJECT_ID 是 Infrastructure Manager 執行的專案 ID。
    • LOCATION 是 Infra Manager 執行的位置。如需有效位置清單,請參閱「Infrastructure Manager 位置」。
    • PREVIEW_ID 是您指定的預覽 ID。如要進一步瞭解預覽 ID 的限制,請參閱「預覽名稱」。
    • SERVICE_ACCOUNT 是您用來呼叫 Infra Manager 的服務帳戶名稱。
    • SERVICE_ACCOUNT_PROJECT_ID 是服務帳戶的專案 ID。通常與 Infra Manager 執行的專案相同。
    • DEPLOYMENT_ID 是要更新的部署作業 ID。
    • BUCKET_NAME 是儲存設定的 Storage bucket 名稱。
    • OBJECT_NAME 是設定檔的物件名稱。這個物件可以是目錄或 ZIP 檔案,但不能是 Terraform 檔案。如果使用物件版本管理功能,也可以指定物件的版本編號。詳情請參閱「使用版本化物件」。

      如果儲存空間值區是 Terraform 設定的根路徑,則可不填寫 OBJECT_NAME。

    • INPUT_1_NAME=VALUE 和 INPUT_2_NAME=VALUE:Terraform 設定中的任何輸入值,包括預設未定義的值。舉例來說,您可以指定部署資源的專案,例如 project_id=my-project。

      如果設定中預設定義了所有輸入值,則這個旗標為選用。

    • 選用:TERRAFORM_VERSION:Infra Manager 用來預覽部署作業更新的 Terraform 版本。如需支援的版本清單,請參閱「支援的 Terraform 版本」。如果移除這個選用旗標,Infra Manager 會使用現有部署作業的 Terraform 版本,或預設為最新支援的免費方案版本 (1.5.7)。預先發布版不會產生付費 Terraform 版本的費用。

    • 選用:PROVIDER_SOURCE:決定部署作業使用的 Google Cloud Terraform 供應商。設為 SERVICE_MAINTAINED,即可使用 Infra Manager 維護的 Terraform 供應商。如要使用 HashiCorp 維護的 Terraform 供應商,請省略這個欄位。詳情請參閱「使用 Google Cloud的 Terraform 供應商」。

    除非您在預覽指令中指定新值,否則 Terraform 設定、變數和服務帳戶等部署作業欄位會自動合併至預覽畫面。

建立預覽後,您可以匯出及查看結果,檢視部署計畫。

使用儲存在 Git 存放區的 Terraform 設定預覽

更新部署作業時,部分現有資源可能不會變更。預覽更新時,系統會顯示預計佈建或刪除的資源,以及不打算修改的資源。

  1. 如果 Terraform 設定儲存在私人 Git 存放區,且您尚未連結至 GitHub 主機和 GitHub 存放區,請務必使用 Cloud Build 連結,以便 Infra Manager 存取存放區。
  2. 如要更新部署作業,請按照下列步驟操作:

    
        
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    gcloud infra-manager previews create projects/PROJECT_ID/locations/LOCATION/previews/PREVIEW_ID \
    --service-account projects/SERVICE_ACCOUNT_PROJECT_ID/serviceAccounts/SERVICE_ACCOUNT \
    --deployment=projects/PROJECT_ID/locations/LOCATION/deployments/DEPLOYMENT_ID \
    --git-source-repo="GIT_REPO" \
    --git-source-directory="DIRECTORY" \
    --git-source-ref="REF" \
    --input-values=INPUT_1_NAME=VALUE,INPUT_2_NAME=VALUE \
    --tf-version-constraint=TERRAFORM_VERSION \
    --provider-source=SERVICE_MAINTAINED

    更改項目:

    • PROJECT_ID 是 Infrastructure Manager 執行的專案 ID。
    • LOCATION 是 Infra Manager 執行的位置。如需有效位置清單,請參閱「Infrastructure Manager 位置」。
    • PREVIEW_ID 是您指定的預覽 ID。如要進一步瞭解預覽 ID 的限制,請參閱「預覽名稱」。
    • SERVICE_ACCOUNT 是您用來呼叫 Infra Manager 的服務帳戶名稱。
    • SERVICE_ACCOUNT_PROJECT_ID 是服務帳戶的專案 ID。通常與 Infra Manager 執行的專案相同。
    • DEPLOYMENT_ID 是要更新的部署作業 ID。
    • GIT_REPO:Git 存放區。
    • DIRECTORY:含有 Terraform 設定的目錄。
    • REF:設定的 Git 參照。參考資料為選填。如未指定參照,系統會使用 Git 存放區預設的分支版本。
    • INPUT_1_NAME=VALUE 和 INPUT_2_NAME=VALUE:Terraform 設定中的任何輸入值,包括預設未定義的值。舉例來說,您可以指定部署資源的專案,例如 project_id=my-project。

      如果設定中預設定義了所有輸入值,則這個旗標為選用。

    • 選用:TERRAFORM_VERSION:Infra Manager 用來預覽部署作業更新的 Terraform 版本。如需支援的版本清單,請參閱「支援的 Terraform 版本」。如果移除這個選用旗標,Infra Manager 會使用現有部署作業的 Terraform 版本,或預設為最新支援的免費方案版本 (1.5.7)。預先發布版不會產生付費 Terraform 版本的費用。

    • 選用:PROVIDER_SOURCE:決定部署作業使用的 Google Cloud Terraform 供應商。設為 SERVICE_MAINTAINED,即可使用 Infra Manager 維護的 Terraform 供應商。如要使用 HashiCorp 維護的 Terraform 供應商,請省略這個欄位。詳情請參閱「使用 Google Cloud的 Terraform 供應商」。

除非您在預覽指令中指定新值,否則 Terraform 設定、變數和服務帳戶等部署作業欄位會自動合併至預覽畫面。

建立預覽後,您可以匯出及查看結果,檢視部署計畫。

後續步驟