0

作为一个特定的示例,我有一组子网,它们都用于同一件事,但分布在多个可用区域中。

我希望能够将所有这些作为列表引用,这样我就可以做一些事情,比如aws_subnet.myname[*].id获取该组子网的所有子网 ID。

有没有办法做这样的事情?

4

1 回答 1

1

没有专门的资源分组功能,但您可以使用命名的本地值自己完成:

locals {
  subnets = flatten([aws_subnet.a, aws_subnet.b, aws_subnet.c])
}

这里的flatten调用是在有和没有count集合的资源之间进行规范化,因为没有count资源表达式只返回一个对象,而有count它是一系列实例。

然后在配置中的其他地方,如果您需要将所有这些 id 放在一起,您可以编写local.subnets[*].id.

于 2019-07-15T16:29:57.747 回答