使用 Terraform 建立工作流程
本快速入門導覽課程說明如何使用 Terraform 建立、部署及執行您的第一項工作流程。Terraform 是一種基礎架構即程式碼工具,可讓您透過程式碼,以可預測的方式建立、變更及改善雲端基礎架構。瞭解如何使用 Terraform 在 Google Cloud上佈建基礎架構。
在本快速入門導覽課程中,範例工作流程會將要求傳送至公用 API,然後傳回 API 的回應。
您將完成下列事項:
- 使用 Terraform 啟用 Workflows API。
- 使用 Terraform 為工作流程建立服務帳戶。
- 使用 Terraform 定義及部署工作流程。
- 使用 Google Cloud CLI 執行工作流程。
事前準備
貴機構定義的安全性限制,可能會導致您無法完成下列步驟。如需疑難排解資訊,請參閱「在受限的 Google Cloud 環境中開發應用程式」。
請注意,Cloud Shell 已整合 Terraform。如需安裝 Terraform,請參閱 HashiCorp Terraform 說明文件。
- 登入 Google Cloud 帳戶。如果您是 Google Cloud新手,歡迎 建立帳戶,親自評估產品在實際工作環境中的成效。新客戶還能獲得價值 $300 美元的免費抵免額,可用於執行、測試及部署工作負載。
-
安裝 Google Cloud CLI。
-
若您採用的是外部識別資訊提供者 (IdP),請先使用聯合身分登入 gcloud CLI。
-
執行下列指令,初始化 gcloud CLI:
gcloud init -
選取或建立專案所需的角色
- 選取專案:選取專案時,不需要具備特定 IAM 角色,只要您已獲授角色,即可選取任何專案。
-
建立專案:如要建立專案,您需要具備專案建立者角色 (
roles/resourcemanager.projectCreator),其中包含resourcemanager.projects.create權限。瞭解如何授予角色。
-
建立 Google Cloud 專案:
gcloud projects create PROJECT_ID
將
PROJECT_ID替換為您要建立的 Google Cloud 專案名稱。 -
選取您建立的 Google Cloud 專案:
gcloud config set project PROJECT_ID
將
PROJECT_ID替換為 Google Cloud 專案名稱。
-
如要使用現有專案進行本指南中的操作,請確認您具有完成本指南所需的權限。如果您建立新專案,則已具備必要權限。
啟用 Cloud Resource Manager、Identity and Access Management (IAM) 和 Service Usage API:
啟用 API 時所需的角色
如要啟用 API,您需要具備服務使用情形管理員 IAM 角色 (
roles/serviceusage.serviceUsageAdmin),其中包含serviceusage.services.enable權限。瞭解如何授予角色。gcloud services enable cloudresourcemanager.googleapis.com
iam.googleapis.com serviceusage.googleapis.com -
安裝 Google Cloud CLI。
-
若您採用的是外部識別資訊提供者 (IdP),請先使用聯合身分登入 gcloud CLI。
-
執行下列指令,初始化 gcloud CLI:
gcloud init -
選取或建立專案所需的角色
- 選取專案:選取專案時,不需要具備特定 IAM 角色,只要您已獲授角色,即可選取任何專案。
-
建立專案:如要建立專案,您需要具備專案建立者角色 (
roles/resourcemanager.projectCreator),其中包含resourcemanager.projects.create權限。瞭解如何授予角色。
-
建立 Google Cloud 專案:
gcloud projects create PROJECT_ID
將
PROJECT_ID替換為您要建立的 Google Cloud 專案名稱。 -
選取您建立的 Google Cloud 專案:
gcloud config set project PROJECT_ID
將
PROJECT_ID替換為 Google Cloud 專案名稱。
-
如要使用現有專案進行本指南中的操作,請確認您具有完成本指南所需的權限。如果您建立新專案,則已具備必要權限。
啟用 Cloud Resource Manager、Identity and Access Management (IAM) 和 Service Usage API:
啟用 API 時所需的角色
如要啟用 API,您需要具備服務使用情形管理員 IAM 角色 (
roles/serviceusage.serviceUsageAdmin),其中包含serviceusage.services.enable權限。瞭解如何授予角色。gcloud services enable cloudresourcemanager.googleapis.com
iam.googleapis.com serviceusage.googleapis.com
必要的角色
如要取得完成本快速入門導覽課程所需的權限,請要求管理員在專案中授予您下列 IAM 角色:
- 專案 IAM 管理員 (
roles/resourcemanager.projectIamAdmin) -
服務帳戶管理員 (
roles/iam.serviceAccountAdmin) -
服務帳戶使用者 (
roles/iam.serviceAccountUser) -
Workflows 管理員 (
roles/workflows.admin)
如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和組織的存取權」。
建立 Terraform 設定檔
建立名為 main.tf 的 Terraform 設定檔,並納入本快速入門導覽課程中使用的 Terraform 適用的 Google provider資源。
請注意,您可以使用內插類型進行替換,例如參照變數、資源屬性和呼叫函式。
建立目錄:
mkdir terraform前往
terraform目錄:cd terraform
在目錄中新增檔案
main.tf:nano main.tf在
main.tf檔案中新增下列資源:指派專案 ID:
provider "google" { project = "PROJECT_ID" }
將
PROJECT_ID替換為專案 ID。啟用 Workflows API:
為工作流程建立服務帳戶:
使用
google_workflows_workflow資源定義工作流程:範例工作流程會使用下列引數:
name:工作流程名稱。region:工作流程的位置。description:工作流程說明。service_account:與最新工作流程版本相關聯的服務帳戶電子郵件地址或專屬 ID。這個服務帳戶代表工作流程的身分,並決定工作流程擁有的權限。如果您在建立工作流程時未指定服務帳戶,工作流程會使用預設的 Compute Engine 服務帳戶做為身分。詳情請參閱「授予工作流程權限,以便存取 Google Cloud 資源」。labels:要指派給這個工作流程的鍵/值標籤組合清單,可協助您整理 Google Cloud 例項。詳情請參閱「什麼是標籤?」user_env_vars:與這個工作流程修訂版本相關聯的使用者定義環境變數。詳情請參閱「使用環境變數」。source_contents:要執行的 Workflows 程式碼。如要瞭解檔案大小限制,請參閱「資源限制」。
其他選用引數包括:
crypto_key_name:Cloud Key Management Service 金鑰的資源 ID,格式如下:projects/PROJECT_NAME/locations/LOCATION/keyRings/KEY_RING/cryptoKeys/KEY_NAME
詳情請參閱「使用客戶管理式加密金鑰」。
call_log_level:在執行這項工作流程期間,套用至呼叫和呼叫回應的記錄層級。可能的值包括:CALL_LOG_LEVEL_UNSPECIFIEDLOG_ALL_CALLSLOG_ERRORS_ONLYLOG_NONE
詳情請參閱「通話記錄」。
project:資源所屬專案的 ID。如未提供,則會使用供應商專案。name_prefix:建立以指定前置字元開頭的專屬名稱。如果未指定這個屬性和name,系統會隨機選擇名稱值。
建立及執行工作流程
部署 Terraform 資源來建立工作流程,然後執行工作流程。
在目錄中初始化 Terraform:
terraform init確認您透過 Terraform 提議的變更與預期計畫相符:
terraform plan您可以忽略有關不使用
-out選項的附註。建立工作流程:
terraform apply在「Enter a value」(輸入值) 提示中輸入
yes,繼續建立資源。確認工作流程已建立:
gcloud workflows list --location us-central1
畫面會顯示如下的輸出內容:
NAME STATE REVISION_ID UPDATE_TIME projects/project-name/locations/us-central1/workflows/sample-workflow ACTIVE 000001-f9a 2024-02-24T13:38:58.353765906Z
您可以選擇執行工作流程:
gcloud workflows execute sample-workflow
清除所用資源
為了避免系統向您的 Google Cloud 帳戶收取本頁面所用資源的費用,請刪除含有這些資源的 Google Cloud 專案。
- 刪除您使用 Terraform 建立的所有資源:
terraform destroy - 刪除您建立的工作流程:
系統詢問是否要繼續時,請輸入gcloud workflows delete sample-workflow
y。 - 或者,您也可以刪除 Google Cloud 專案,以免產生費用。刪除 Google Cloud 專案後,系統就會停止對專案使用的所有資源收取費用。
刪除 Google Cloud 專案:
gcloud projects delete PROJECT_ID
後續步驟
除非另有註明,否則本頁面中的內容是採用創用 CC 姓名標示 4.0 授權,程式碼範例則為阿帕契 2.0 授權。詳情請參閱《Google Developers 網站政策》。Java 是 Oracle 和/或其關聯企業的註冊商標。
上次更新時間:2026-03-28 (世界標準時間)。
[[["容易理解","easyToUnderstand","thumb-up"],["確實解決了我的問題","solvedMyProblem","thumb-up"],["其他","otherUp","thumb-up"]],[["難以理解","hardToUnderstand","thumb-down"],["資訊或程式碼範例有誤","incorrectInformationOrSampleCode","thumb-down"],["缺少我需要的資訊/範例","missingTheInformationSamplesINeed","thumb-down"],["翻譯問題","translationIssue","thumb-down"],["其他","otherDown","thumb-down"]],["上次更新時間:2026-03-28 (世界標準時間)。"],[],[]]