我刚刚开始使用for_each循环,并且据我所知,for_each与count不同,在某种意义上,输出aws_transfer_key.transfer_key [1]与for_each输出aws_transfer_key.transfer_key [“ value”]的数值索引的数量。 / p>
稍后如何调用for_each值的输出?
答案 0 :(得分:1)
带有resource
参数集的data
或count
块在列表中显示为表达式,这就是为什么您可以使用[0]
,{{1 }}等
类似地,带有[1]
参数集的resource
或data
块在表达式中以 map 的形式出现,因此您可以使用{{ 1}},for_each
等
在两种情况下,集合都是符合资源类型架构的对象的,因此您可以使用["foo"]
语法遵循该集合来访问各个属性。
因此,首先获取资源类型和名称["bar"]
,它是一个映射。然后.attribute
从地图访问您想要的实例。然后aws_transfer_key.transfer_key
访问“ foo”属性。总之,就是["value"]
。
如果要跨所有实例访问“ foo”属性的所有全部,则可以使用for
expression将对象的映射投影到字符串映射中:>
.foo
答案 1 :(得分:0)
从示例here
resource "aws_security_group" "example" {
name = "example" # can use expressions here
dynamic "ingress" {
for_each = var.service_ports
content {
from_port = ingress.value
to_port = ingress.value
protocol = "tcp"
}
}
}
您引用动态块的名称,在本例中为ingress
。