簡體   English   中英

Terraform 數據過濾器:獲取多個值

[英]Terraform data filter : get multiple values

我想從另一個存儲庫獲取 su.net 值。 為此,我添加了數據 aws_su.net 部分。 但是我在過濾部分遇到了問題。 在值行的末尾,我需要計算每個 su.net。 我嘗試使用 count.index 和不同的東西。 但是我得到這個錯誤: The "count" object can only be used in "module", "resource", and "data" blocks, and only when the "count" argument is set. 那么如何將 * 用於過濾值部分。 如: ${var.vpcname}-Public-*

我的蘇網:

myvpc-Private-0
myvpc-Private-1
myvpc-Private-2
myvpc-Public-0
myvpc-Public-1
myvpc-Public-2

我的數據部分:

data "aws_subnet" "public" {
  filter {
    name   = "tag:Name"    
    values = ["${var.vpcname}-Public-"]
  }
}

data "aws_subnet" "private" {
  filter {
    name   = "tag:Name"
    values = ["${var.vpcname}-Private-"]
  }
}

想查看 output 部分以下的所有 su.net。

output "private" {
  value = data.aws_subnet.private.*.id
}

output "public" {
  value = data.aws_subnet.public.*.id
}

您應該使用aws_su.nets ,而不是aws_su.net

data "aws_subnets" "public" {
  filter {
    name   = "tag:Name"    
    values = ["${var.vpcname}-Public-*"]
  }
}

data "aws_subnets" "private" {
  filter {
    name   = "tag:Name"
    values = ["${var.vpcname}-Private-*"]
  }
}

然后

output "private" {
  value = data.aws_subnets.private.ids
}

output "public" {
  value = data.aws_subnets.public.ids
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM