【发布时间】:2021-09-22 11:48:32
【问题描述】:
我有资源:
resource "aci_epg_to_static_path" "static_ports" {
for_each = var.epgs
application_epg_dn = aci_application_epg.epgs[each.key].id
tdn = "topology/pod-1/paths-101/pathep-[eth1/2]"
encap = "vlan-${each.value.vlan_id}"
mode = "regular"
}
变量文件:
{
},
"epgs":{
"net-1.1.20.0_24": {"name": "net-1.1.20.0_24",
"bd": "bd_1.1.20.0_24",
"vlan_id": "1000"
},
"net-1.1.30.0_24": {"name": "net-1.1.30.0_24",
"bd": "bd_1.1.30.0_24",
"vlan_id": "1001"
}
}
"static_ports": ["topology/pod-1/paths-101/pathep-[eth1/2]",
"topology/pod-1/paths-101/pathep-[eth1/3]"]
}
问题是我想为 tdn 使用字符串列表,例如:
["topology/pod-1/paths-101/pathep-[eth1/2]", "topology/pod-1/paths-101/pathep-[eth1/3]"]
并且提供者资源不支持列表,只支持字符串。
由于我已经在使用 for_each 来获取其他变量,因此似乎不可能同时循环遍历列表。
也许还有其他方法可以解决这个问题?
【问题讨论】:
-
您需要将
var.epgs的结构从list(string)更改为map(string),然后您可以为application_epg_dn分配一个tdn。如果您想要每个application_epg_dn的所有可能的tdn,那么这需要是map(list(string))。无论哪种方式,我们都需要知道其中哪一个是您的意图,以及您当前的var.epgs是什么样的。 -
你的
var.epgs的结构是什么?你能举个例子吗? -
据我了解,如果你想遍历同一个 TF 资源中的两个列表变量,你可能想看看 setproduct 函数。
-
我用变量文件更新了问题。
标签: terraform