我一直在尝试找到一种方法来获取 AWS 中的子网名称...到目前为止还没有成功。我可以找到 arn、ids、cidrs...以及一堆其他内容。但是,不是名字。感谢帮助!
这就是我的目标。创建子网映射,以子网名称作为键,以子网 ID 作为值。显然 name 不是
data.aws_subnet
支持的属性。我已经搜索了“谷歌”,但运气不佳。
data "aws_subnets" "private" {
tags = {
Name = "private*"
}
filter {
name = "state"
values = ["available"]
}
}
data "aws_subnet" "private" {
for_each = toset(data.aws_subnets.private.ids)
id = each.value
}
# wanting to create a map with subnet.name => subnet.id... but, name is an unsupported attribute.
private_subnet_ids = { for s in data.aws_subnet.private : trimprefix(s.name, "private") => s.id }
你必须使用
tags["Name"]
:
private_subnet_ids = { for s in data.aws_subnet.private : trimprefix(s.tags["Name"], "private") => s.id }