使用Terraform的Google云生成器

使用Terraform的Google云生成器,terraform,google-cloud-composer,Terraform,Google Cloud Composer,我不熟悉Terraform,有没有直接的方法来管理和创建使用Terraform的Google Cloud Composer环境 我查看了GCP支持的组件列表,似乎到目前为止还没有Google Cloud Composer。作为一项工作,我正在考虑创建一个shell脚本,其中包含必需的gcloud composer cli命令,并使用Terraform运行它,这是一种正确的方法吗?请提出备选方案。这是一种选择。可以使用和来运行命令: resource "null_resource" "compos

我不熟悉Terraform,有没有直接的方法来管理和创建使用Terraform的Google Cloud Composer环境


我查看了GCP支持的组件列表,似乎到目前为止还没有Google Cloud Composer。作为一项工作,我正在考虑创建一个shell脚本,其中包含必需的gcloud composer cli命令,并使用Terraform运行它,这是一种正确的方法吗?请提出备选方案。

这是一种选择。可以使用和来运行命令:

resource "null_resource" "composer" {
  provisioner "local-exec" {
    inline = [
      "gcloud beta composer <etc..>"
    ]
  }
}
使用local exec时请记住:

请注意,即使在 如果provisioner正在运行,则不能保证它将处于运行状态 可操作状态


它看起来真的很新,还在测试阶段。希望Terraform将来会支持它。

这是一个选项。可以使用和来运行命令:

resource "null_resource" "composer" {
  provisioner "local-exec" {
    inline = [
      "gcloud beta composer <etc..>"
    ]
  }
}
使用local exec时请记住:

请注意,即使在 如果provisioner正在运行,则不能保证它将处于运行状态 可操作状态


它看起来真的很新,还在测试阶段。希望Terraform将来会支持它。

我发现我必须对包含命令参数的provisioner使用稍微不同的语法

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中的实际资源状态断开连接。它将依赖于状态文件来判断它是否存在,我发现我必须污染它才能让命令再次运行。

我发现我必须对包含命令参数的provisioner使用稍微不同的语法

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中的实际资源状态断开连接。它将依赖于状态文件来判断它是否存在,我发现我必须污染它才能让命令再次运行。

Terraform现在支持Google Cloud Composer

它可以按如下方式使用

resource "google_composer_environment" "test" {
  name   = "my-composer-env"
  region = "us-central1"
}

Google Cloud Composer现在在Terraform中受支持

它可以按如下方式使用

resource "google_composer_environment" "test" {
  name   = "my-composer-env"
  region = "us-central1"
}