預覽部署更新

本頁說明如何使用 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 設定,可以位於儲存空間值區或 Git 存放區中。

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

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

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

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

  2. 確認 Terraform 設定已上傳至 Cloud 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 是儲存設定的儲存空間值區名稱。
    • OBJECT_NAME 是設定檔的物件名稱。這個物件可以是目錄或 zip 檔案,但不能是 Terraform 檔案。如果您使用物件版本管理,也可以指定物件的產生編號。詳情請參閱「使用已設定版本的物件」。

      如果儲存空間 bucket 是 Terraform 設定的根路徑,則 OBJECT_NAME 為選用項目。

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

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

    • 選用:TERRAFORM_VERSION:Infra Manager 用於建立部署作業的 Terraform 版本。如需支援的版本清單,請參閱「支援的 Terraform 版本」。如果移除這個選用旗標,系統會使用最新支援的 Terraform 版本。

    • 選用:PROVIDER_SOURCE:決定部署作業使用的 Terraform 提供者。 Google Cloud 設為 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=VALUEINPUT_2_NAME=VALUE:Terraform 設定中的任何輸入值,包括預設未定義的值。舉例來說,您可以將部署資源的專案指定為 project_id=my-project

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

    • 選用:TERRAFORM_VERSION:Infra Manager 用於建立部署作業的 Terraform 版本。如需支援的版本清單,請參閱「支援的 Terraform 版本」。如果移除這個選用旗標,系統會使用最新支援的 Terraform 版本。

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

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

預覽作業建立完成後,您可以匯出並查看結果,以便審查部署作業計畫。

後續步驟