Terraform 从使用 count 创建的资源中获取 ID 列表

Jak*_*und 6 terraform terraform-provider-aws

我定义了许多子网资源:

resource "aws_subnet" "my_subnets" {
  count = 8
  cidr_block = cidrsubnet(var.cidr_block, 3, count.index)
  vpc_id = var.vpc
}
Run Code Online (Sandbox Code Playgroud)

然后,我必须将这些子网 ID 的列表传递给另一个资源。我知道 ID 可以在 上访问aws_subnet.my_subnets[count].id,但是如何循环遍历这些 ID 并将所有值附加到列表中以便将其传递给其他资源?我看到的建议是标记子网,然后使用数据属性来查找这些子网,它们将以列表格式返回,但我在资源的输出上有 ID。

Jak*_*und 7

找到了我的想法 - splat 表达式:https://www.terraform.io/docs/language/expressions/splat.html

  • 我知道您已链接到相关文档,但我认为在这里找到答案也很有帮助,因为正如我们在上面看到的,链接可能会发生变化。`aws_subnet.my_subnets[*].id` 将生成 id 列表。 (3认同)