【问题标题】:how can we add project number from variable in terraform gcp resource iam binding我们如何从 terraform gcp 资源 iam 绑定中的变量添加项目编号
【发布时间】:2020-12-28 16:05:41
【问题描述】:

以下是我的 terraform 资源。我们如何从 terraform gcp 资源 iam 绑定中的变量添加项目编号,因为如果我要为其他帐户运行相同的 terraform,我必须手动更改它。

resource "google_project_iam_binding" "project" {
  project = var.projectid
  role    = "roles/container.admin"

  members = [
    "serviceAccount:service-1016545346555@gcp-sa-cloudbuild.iam.gserviceaccount.com",
  ]
}

【问题讨论】:

  • 你能详细说明一下这个问题吗?
  • @adp,我想像“serviceAccount:service-$PROJECT_NUMBER@gcp-sa-cloudbuild.iam.gserviceaccount.com”一样使用,所以当我在其他帐户中尝试相同的操作时,它会从变量中选择.tf 或 gcp 全局变量。毕竟,我不想硬编码。

标签: terraform terraform-provider-gcp


【解决方案1】:

您可以使用google_client_config data-source 访问提供者的配置。

首先,将以下数据源块添加到 main.tf:

data "google_client_config" "current" {}

然后,您将能够访问 project_id,如下所示:

output "project_id" {
  value = data.google_client_config.current.project
}

更多信息请参考: https://www.terraform.io/docs/providers/google/d/client_config.html

【讨论】:

  • 根据文档,这为您提供了项目 ID,但问题是项目编号,这是 2 个单独的谷歌项目唯一标识符。
【解决方案2】:

项目编号可在 google_project 数据源 (https://www.terraform.io/docs/providers/google/d/project.html) 中找到。

所以当这个添加时:

data "google_project" "project" {}

应该可以使用:

data.google_project.project.number

【讨论】:

猜你喜欢
  • 2021-08-28
  • 1970-01-01
  • 2021-12-08
  • 2021-03-02
  • 1970-01-01
  • 1970-01-01
  • 2022-12-07
  • 1970-01-01
  • 2020-07-28
相关资源
最近更新 更多