Terraform を使用してワークフローを作成する
このクイックスタートでは、Terraform を使用して最初のワークフローを作成、デプロイ、実行する方法について説明します。Terraform は、コードを使用してクラウド インフラストラクチャを予想どおりに作成、変更、改善できる Infrastructure as Code ツールです。Terraform を使用して Google Cloudでインフラストラクチャをプロビジョニングする方法を学びます。
このクイックスタートのサンプル ワークフローは、リクエストを公開 API に送信してから、API のレスポンスを返します。
以下の手順を行います。
- Terraform を使用して Workflows API を有効にします。
- Terraform を使用してワークフロー用のサービス アカウントを作成します。
- Terraform を使用してワークフローを定義してデプロイします。
- Google Cloud CLI を使用してワークフローを実行します。
始める前に
組織で定義されているセキュリティの制約により、次の手順を完了できない場合があります。トラブルシューティング情報については、制約のある Google Cloud 環境でアプリケーションを開発するをご覧ください。
Cloud Shell には Terraform がすでに統合されています。Terraform をインストールする必要がある場合は、HashiCorp Terraform のドキュメントをご覧ください。
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
Install the Google Cloud CLI.
-
外部 ID プロバイダ(IdP)を使用している場合は、まず連携 ID を使用して gcloud CLI にログインする必要があります。
-
gcloud CLI を初期化するには、次のコマンドを実行します。
gcloud init
-
Create or select a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator
(
roles/resourcemanager.projectCreator
), which contains theresourcemanager.projects.create
permission. Learn how to grant roles.
-
Create a Google Cloud project:
gcloud projects create PROJECT_ID
Replace
PROJECT_ID
with a name for the Google Cloud project you are creating. -
Select the Google Cloud project that you created:
gcloud config set project PROJECT_ID
Replace
PROJECT_ID
with your Google Cloud project name.
-
Verify that billing is enabled for your Google Cloud project.
-
Enable the Cloud Resource Manager and Identity and Access Management (IAM) APIs:
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin
), which contains theserviceusage.services.enable
permission. Learn how to grant roles.gcloud services enable cloudresourcemanager.googleapis.com
iam.googleapis.com -
Install the Google Cloud CLI.
-
外部 ID プロバイダ(IdP)を使用している場合は、まず連携 ID を使用して gcloud CLI にログインする必要があります。
-
gcloud CLI を初期化するには、次のコマンドを実行します。
gcloud init
-
Create or select a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator
(
roles/resourcemanager.projectCreator
), which contains theresourcemanager.projects.create
permission. Learn how to grant roles.
-
Create a Google Cloud project:
gcloud projects create PROJECT_ID
Replace
PROJECT_ID
with a name for the Google Cloud project you are creating. -
Select the Google Cloud project that you created:
gcloud config set project PROJECT_ID
Replace
PROJECT_ID
with your Google Cloud project name.
-
Verify that billing is enabled for your Google Cloud project.
-
Enable the Cloud Resource Manager and Identity and Access Management (IAM) APIs:
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin
), which contains theserviceusage.services.enable
permission. Learn how to grant roles.gcloud services enable cloudresourcemanager.googleapis.com
iam.googleapis.com ディレクトリを作成します。
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。このサービス アカウントはワークフローの ID を表し、ワークフローが持つ権限を決定します。ワークフローの作成時にサービス アカウントを指定しない場合、ワークフローは、デフォルトの Compute Engine サービス アカウントをその ID に対して使用します。詳細については、 Google Cloud リソースにアクセスする権限をワークフローに付与するをご覧ください。labels
: このワークフローに割り当てる Key-Value ラベルペアのリスト。 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_UNSPECIFIED
LOG_ALL_CALLS
LOG_ERRORS_ONLY
LOG_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 プロジェクトを削除すると、そのプロジェクト内で使用されているすべてのリソースに対する課金が停止します。
Delete a Google Cloud project:
gcloud projects delete PROJECT_ID
次のステップ
特に記載のない限り、このページのコンテンツはクリエイティブ・コモンズの表示 4.0 ライセンスにより使用許諾されます。コードサンプルは Apache 2.0 ライセンスにより使用許諾されます。詳しくは、Google Developers サイトのポリシーをご覧ください。Java は Oracle および関連会社の登録商標です。
最終更新日 2025-09-11 UTC。
Terraform 構成ファイルを作成する
main.tf
という Terraform 構成ファイルを作成し、このクイックスタートで使用する Terraform の Google プロバイダ リソースを指定します。
参照変数、リソースの属性、関数の呼び出しなどの代入には補間を使用できます。