我是 Terraform 的新手,是否有任何直接的方法可以使用 Terraform 管理和创建 Google Cloud Composer 环境?
我检查了 GCP 支持的组件列表,似乎 Google Cloud Composer 目前不存在。作为一种解决方法,我正在考虑创建一个 shell 脚本,包括所需的 gcloud composer cli 命令并使用 Terraform 运行它,这是一种正确的方法吗?请提出替代方案。
我是 Terraform 的新手,是否有任何直接的方法可以使用 Terraform 管理和创建 Google Cloud Composer 环境?
我检查了 GCP 支持的组件列表,似乎 Google Cloud Composer 目前不存在。作为一种解决方法,我正在考虑创建一个 shell 脚本,包括所需的 gcloud composer cli 命令并使用 Terraform 运行它,这是一种正确的方法吗?请提出替代方案。
Terraform 现在支持 Google Cloud Composer
https://www.terraform.io/docs/providers/google/r/composer_environment.html
它可以如下使用
resource "google_composer_environment" "test" {
name = "my-composer-env"
region = "us-central1"
}
那是一种选择。您可以使用null_resource
andlocal-exec
来运行命令:
resource "null_resource" "composer" {
provisioner "local-exec" {
inline = [
"gcloud beta composer <etc..>"
]
}
}
使用时请记住local-exec
:
请注意,即使在运行配置程序时将完全创建资源,也不能保证它会处于可操作状态
看起来Google Cloud Composer真的很新,而且仍处于测试阶段。希望 Terraform 将来会支持它。
我发现我必须对包含命令参数的配置器使用稍微不同的语法。
resource "null_resource" "composer" {
provisioner "local-exec" {
command = "gcloud composer environments create <name> --project <project> --location us-central1 --zone us-central1-a --machine-type n1-standard-8"
}
}
虽然这可行,但它与 GCP 中的实际资源状态断开了连接。它将依赖状态文件来判断它是否存在,我发现我必须对其进行污染才能让命令再次运行。