我使用以下条件创建Terraform中的折叠资源
resource "google_bigquery_dataset_access" "access" {
count = contains(var.bq_access, "viewer") ? length(var.bigquery_datasets) : 0
project = "test-project"
dataset_id = var.bigquery_datasets[count.index].dataset_id
role = "roles/bigquery.dataViewer"
user_by_email = lower(var.user_email[?])
}我试图基于length(var.bigquery_datasets)创建这个资源的多个实例,问题是var.user_email是一个列表,我希望为所有电子邮件和bigquery_datasets的所有元素创建这个资源。如何在一个资源块中组合下面的代码和上面的代码?
resource "google_bigquery_dataset_access" "access" {
count = contains(var.bq_access, "viewer") ? length(var.user_email) : 0
project = "test-project"
dataset_id = var.bigquery_datasets[?].dataset_id
role = "roles/bigquery.dataViewer"
user_by_email = lower(var.user_email[count.index])
}var.bigquery_datasets和var.user_email的长度不一样。任何帮助都将不胜感激。谢谢!
最新情况:
variable "user_email" {
type = list(any)
description = "email addresses list"
}定义user_email = "email1@xyz.com“、"email2@xyz.com”、"email3@xyz.com“
variable "bigquery_datasets" {
type = list(any)
description = "datasets list"
}定义bigquery_datasets = "datasetid1“、"datasetid2”、"datasetid3“、"datasetid4”、"datasetid5“
发布于 2022-08-03 10:46:49
我认为setproduct可以解决你的问题:
locals {
emails_datasets = setproduct(var.user_email, var.bigquery_datasets)
}
resource "google_bigquery_dataset_access" "access" {
count = contains(var.bq_access, "viewer") ? length(local.emails_datasets) : 0
project = "test-project"
dataset_id = local.emails_datasets[count.index][1]
role = "roles/bigquery.dataViewer"
user_by_email = lower(local.emails_datasets[count.index][0])
}https://stackoverflow.com/questions/73216961
复制相似问题