【发布时间】:2022-02-07 18:28:17
【问题描述】:
我想将现有 IAM 用户导入 terraform。我在 main.tf 中创建了一个看起来像这样的模块
module "iam" {
source = "./modules/iam"
project_id = var.project_id
owners = var.owners
}
变量在变量文件中定义为:
variable "owners" {
type = list(string)
default = [
"user:test1@infarm.com",
"user:test2@infarm.com",
]
}
模块本身包含一个带有for_each循环的资源:
resource "google_project_iam_member" "owner" {
role = "roles/owner"
for_each = toset(concat(
var.owners,
))
member = each.value
}
我从terraform documentation 中找到了导入语句并将其解释为以下内容。根据文档,最后一部分 user:foo@example.com 仅适用于单个用户。如何调整导入语句以应用于我想要的用户变量列表?
terraform import module.iam.google_project_iam_member.owner "infarm-data roles/owner user:foo@example.com"
【问题讨论】:
-
之后您是否尝试过导入
module.iam.google_project_iam_member.owner[0]和其他索引? -
如果我在资源创建中使用 count ,我相信这将是一个解决方案,但使用 for_each 是不可能的。
-
啊,我错过了,那应该是
module.iam.google_project_iam_member.owner["some_owner"]
标签: terraform-provider-gcp google-iam