我想用下一种方式调用 terraform 模块:
module "database_role" {
source = "modules/roles"
project_id = "testid"
role_name = "testrole"
actions = {
action: ["ENABLE_PROFILER", "DROP_DATABASE"]
database_name: "test_db"
}
我创建的角色模块定义是:
resource "mongodbatlas_custom_db_role" "custom_role" {
project_id = var.project_id
role_name = var.role_name
dynamic "actions" {
for_each = [for item in [var.actions] : item]
content {
actions {
action = lookup(actions.value, "action")
resources {
cluster = "false"
database_name = lookup(actions.value, "database_name")
}
}
}
}
}
结果我想看到正确生成的动作:
actions {
action = "ENABLE_PROFILER"
resources {
cluster = "false"
database_name = "test_db"
}
}
actions {
action = "DROP_DATABASE"
resources {
cluster = "false"
database_name = "test_db"
}
}
我收到错误:给定的值不适合子模块变量“动作”。我在模块动态资源中做错了什么?谢谢