【发布时间】:2021-05-27 00:51:46
【问题描述】:
我在 Terraform 上的单个计数循环中部署了 15 个 google_project_iam_member 资源。部署每个资源(并行运行)大约需要 8 分钟,我认为可能有问题。没有其他资源需要这么长时间。代码:
## This code converts the user_permissions map to the format [ {members = x, role = y}, ... ]
locals {
permissions = flatten([for group in var.user_permissions :
[for tuple in setproduct(group.emails, group.roles) : {
members = tuple[0],
roles = tuple[1]
}]])
}
resource "google_project_iam_member" "ib_admins_access" {
count = length(local.permissions)
project = var.project_id
role = "roles/${local.permissions[count.index].roles}"
member = local.permissions[count.index].members
}
user_permissions 的映射格式如下:
user_permissions = {
group_x = {
emails = [<emails>]
roles = [
<roles>
]
}
这 2 项政策花费了 20 多分钟。他们分别是 storage.objectAdmin 和 viewer 用于 2 封不同的电子邮件
module.iam.google_project_iam_member.ib_access_predefined_roles[6]: Still creating... [22m1s elapsed]
module.iam.google_project_iam_member.ib_access_predefined_roles[15]: Still creating... [22m1s elapsed]
我正在尝试构建一个像上面这样的字典,并以非权威的方式部署它。我认为这可能与政策更新有关,例如政策相互争斗。我考虑过延迟或按顺序执行,但在循环内找不到资源或 terraform 命令来执行此操作。有一个更好的方法吗?我的代码有什么问题?
【问题讨论】:
标签: google-cloud-platform terraform terraform-provider-gcp google-iam