使用 Terraform 创建工作流
本快速入门介绍了如何使用 Terraform 创建、部署和执行第一个工作流。Terraform 是一种基础架构即代码工具,可让您使用代码以可预测的方式创建、更改和改进您的云基础架构。了解如何使用 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.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
Create or select a Google Cloud project.
-
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.
-
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Cloud Resource Manager and Identity and Access Management (IAM) APIs:
gcloud services enable cloudresourcemanager.googleapis.com
iam.googleapis.com - Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
Create or select a Google Cloud project.
-
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.
-
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Cloud Resource Manager and Identity and Access Management (IAM) APIs:
gcloud services enable cloudresourcemanager.googleapis.com
iam.googleapis.com
创建 Terraform 配置文件
创建一个名为 main.tf
的 Terraform 配置文件,并添加本快速入门中使用的 Terraform 的 Google 提供程序资源。
请注意,您可以使用插值来替换引用变量、资源属性和调用函数等。
创建目录:
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_UNSPECIFIED
LOG_ALL_CALLS
LOG_ERRORS_ONLY
LOG_NONE
如需了解详情,请参阅通话日志记录。
project
:资源所属的项目的 ID。如果未提供,系统会使用提供方项目。name_prefix
:创建以指定前缀开头的唯一名称。如果未指定此属性和name
,系统会为名称选择一个随机值。
创建和执行工作流
部署 Terraform 资源以创建工作流,然后执行工作流。
在目录中初始化 Terraform:
terraform init
检查您向 Terraform 建议的更改是否与预期方案匹配:
terraform plan
您可以忽略有关不使用
-out
选项的备注。创建工作流:
terraform apply
在输入值提示符处,输入
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 开发者网站政策。Java 是 Oracle 和/或其关联公司的注册商标。
最后更新时间 (UTC):2024-12-18。