我刚刚开始使用 for_each 循环,根据我的理解,for_each 与 count 不同,即以数字方式计算输出 aws_transfer_key.transfer_key[1] 与 for_each 输出 aws_transfer_key.transfer_key["value"] 的索引。
稍后如何调用 for_each 值的输出?
最佳答案
带有 count
参数集的 resource
或 data
block 在表达式中显示为列表,这就是为什么您可以使用以下方式访问其实例[0]
、[1]
等
同样,带有 for_each
参数集的 resource
或 data
block 在表达式中显示为 map,因此您可以使用 ["foo"]
、["bar"]
等访问其实例。
在这两种情况下,集合都是符合资源类型架构的对象,因此您可以遵循 .attribute
语法来访问各个属性。
因此,首先获取资源类型和名称,aws_transfer_key.transfer_key
,它是一个映射。然后["value"]
从 map 访问您想要的实例。然后 .foo
访问“foo”属性。总而言之,这就是 aws_transfer_key.transfer_key["value"].foo
。
如果您想访问所有实例中的所有“foo”属性,您可以使用for
expression将对象映射投影到字符串映射中。 :
{ for k, v in aws_transfer_key.transfer_key : k => v.foo }
关于terraform - 调用特定的 for_each 输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58125226/