【问题标题】:Why does Terraform's GCP google_project_iam_member resource take so long to deploy?为什么 Terraform 的 GCP google_project_iam_member 资源需要这么长时间才能部署?
【发布时间】: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.objectAdminviewer 用于 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


    【解决方案1】:

    我使用的是 WSL 2,那里的互联网连接可能存在问题。当我改用 PowerShell 时,它的运行速度要快得多。

    【讨论】:

    • 您的答案可以通过额外的支持信息得到改进。请edit 添加更多详细信息,例如引用或文档,以便其他人可以确认您的答案是正确的。你可以找到更多关于如何写好答案的信息in the help center
    猜你喜欢
    • 2012-04-06
    • 2019-11-13
    • 1970-01-01
    • 1970-01-01
    • 2012-04-29
    • 2020-02-15
    • 1970-01-01
    • 1970-01-01
    • 2021-07-17
    相关资源
    最近更新 更多