调用特定的for_each输出

时间:2019-09-26 21:54:15

标签: terraform

我刚刚开始使用for_each循环,并且据我所知,for_each与count不同,在某种意义上,输出aws_transfer_key.transfer_key [1]与for_each输出aws_transfer_key.transfer_key [“ value”]的数值索引的数量。 / p>

稍后如何调用for_each值的输出?

2 个答案:

答案 0 :(得分:1)

带有resource参数集的datacount块在列表中显示为表达式,这就是为什么您可以使用[0],{{1 }}等

类似地,带有[1]参数集的resourcedata块在表达式中以 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