问题描述
variables.tf
variable "teams" {
type = map(any)
default = {}
}
input_value:
teams = {
{
team_id = "abc"
role_names = ["owner"]
},{
team_id = "bcd"
role_names = ["read","write"]
}
}
}
main.tf:
resource "mongodbatlas_project" "project" {
name = "testing"
org_id = "123456"
dynamic "teams" {
for_each = var.teams
content {
id = teams.value.team_id
names = [teams.value.role_names]
}
}
}
我一直在尝试上面的代码,但是它不起作用。有没有更简单的方法将嵌套团队值分配给变量?
解决方法
teams
变量对我来说似乎不正确,并且存在语法错误(例如,}
中有额外的teams
)。我认为应该是list
,而不是map
:
variable "teams" {
type = list(any)
default = []
}
然后
teams = [
{
team_id = "abc"
role_names = ["owner"]
},{
team_id = "bcd"
role_names = ["read","write"]
}
]
那么您的资源可能是:
resource "mongodbatlas_project" "project" {
name = "testing"
org_id = "123456"
dynamic "teams" {
for_each = toset(var.teams)
content {
id = teams.value.team_id
names = teams.value.role_names
}
}
}
使用dynamic blocks时,迭代器的调用与块名相同。