google-cloud-platform - 为什么 Terraform 的 GCP google_project_iam_member 资源需要这么长时间才能部署?
问题描述
我google_project_iam_member
在 Terraform 的一个计数循环中部署了 15 个资源。部署每个资源(并行运行)大约需要 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>
]
}
这两项政策花了 20 多分钟。他们是2 封不同storage.objectAdmin
的viewer
电子邮件
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 命令来执行此操作。有一个更好的方法吗?我的代码有什么问题?
解决方案
我使用的是 WSL 2,那里的互联网连接可能存在一些问题。当我更改为 PowerShell 时,它的运行速度要快得多。
推荐阅读
- sql-server - 选择过去 24 小时到今天早上某个小时的行
- jquery - JQuery 事件只运行一次,不重复
- php - 如何在 Laravel 中处理具有来自 Ajax Api 的多个对象的 POST 数组?
- memory - 对将英特尔傲腾 DC SSD 用作 IMDT 的额外 RAM 感到困惑?
- python - 无法在 python 中使用 smtplib 发送邮件
- java - 如何使用表中的 if 函数在循环中排列重复字符串数组
- flutter - 在颤动中使用 BLoC 模式进行堆栈
- php - “php artisan migrate”显示“没有要迁移的东西”
- ionic-framework - ionic 4 键盘推送内容
- apache-spark - 如何在不指定所有列名的情况下将多个列值更改为常量?