使用 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
:要执行的工作流代码。如需了解文件大小限制,请参阅资源限制。
其他可选参数包括:
crypto_key_name
:Cloud Key Management Service 密钥在 以下格式: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 开发者网站政策。Java 是 Oracle 和/或其关联公司的注册商标。
最后更新时间 (UTC):2024-11-21。