【发布时间】:2020-12-27 23:25:34
【问题描述】:
这是我的变量定义:
variable "assets" {
type = map(object({
car = object({
name = string
tires = list(string)
})
house = object({
rooms = list(object({
name = string
furnitures = list(string)
}))
})
}
如果我有这个输入:
assets {
car = {
name = "bmw"
tires = ["1", "2", "3", "4"]
}
house = {
rooms = [
{
name = "living_room"
furnitures = ["chair, table"]
},
{
name = "bed_room"
furnitures = ["bed, pillow"]
}
]
}
}
在我遍历资产值的资源中:
resource "test" "test" {
for_each = {
for asset in assets : asset.key => asset
}
}
我想将包含对象列表 (each.value.house.rooms) 的对象提取到如下两个列表(在资源中):
room_names = ["living_room", "bed_room"]
room_furnitures = [["chair","table"], ["bed", "pillow"]]
我能想到的伪代码应该是:
room_names = for room in each.value.house.rooms: room.name
room_furnitures = for room in each.value.house.rooms: room.furnitures
【问题讨论】:
-
生成的
map(list(string))会涉及单个asset,还是聚合多个assets?根据类型规范,我必须假设每个asset有一个house。
标签: terraform