【发布时间】:2018-07-26 20:14:00
【问题描述】:
我有 6 个子网,我想从中筛选出 3 个匹配子字符串 internal 的子网并在 rds 中使用。
标签名称有内部词,并希望根据它进行过滤。
谁能帮帮我?
data "aws_vpc" "vpc_nonprod-sctransportationops-vpc" {
tags {
Name = "vpc_nonprod-sctransportationops-vpc"
}
}
data "aws_subnet_ids" "all" {
vpc_id = "${data.aws_vpc.vpc_nonprod-sctransportationops-vpc.id}"
}
output "aws_subnet_ids" {
value = "${data.aws_subnet_ids.all.ids}"
}
# 6 subnets
# Now look up details for each subnet
data "aws_subnet" "filtered_subnets" {
count = "${length(data.aws_subnet_ids.all.ids)}"
id = "${data.aws_subnet_ids.all.ids[count.index]}"
filter {
name = "tag:Name"
values = ["*internal*"]
}
}
一些标签名称有internal 子字符串
需要抓取所有标签名有内部子串的子网id
values = ["*"] 返回6 ids,但是values = ["any word not work"] 或values = ["*internal*"] 不起作用。
以下是错误:
Error: Error refreshing state: 1 error(s) occurred:
* data.aws_subnet.publicb: 3 error(s) occurred:
* data.aws_subnet.publicb[1]: data.aws_subnet.publicb.1: no matching subnet found
* data.aws_subnet.publicb[4]: data.aws_subnet.publicb.4: no matching subnet found
* data.aws_subnet.publicb[0]: data.aws_subnet.publicb.0: no matching subnet found
应该有 6 个,但我只得到 3 个,这意味着应该有部分好东西和部分坏东西。
这 3 个子网在标签名称中没有 internal 子字符串。
这意味着它正在解析。 aws_subnet_ids 没有过滤选项。
应该有。一场比赛,这很简单,但是,我需要多场比赛。
现在我猜这个错误是因为循环运行了 6 次。
这是没有过滤器的相同输出:
"data.aws_subnet.filtered_subnets.2": {
"type": "aws_subnet",
"depends_on": [
"data.aws_subnet_ids.all"
],
"primary": {
"id": "subnet-14058972",
"attributes": {
"assign_ipv6_address_on_creation": "false",
"availability_zone": "us-west-2a",
"cidr_block": "172.18.201.0/29",
"default_for_az": "false",
"id": "subnet-14038772",
"map_public_ip_on_launch": "false",
"state": "available",
"tags.%": "4",
"tags.Designation": "internal",
"tags.Name": "subnet_nonprod-sctransportationops-vpc_internal_az2",
"tags.Permissions": "f00000",
"tags.PhysicalLocation": "us-west-2a",
"vpc_id": "vpc-a47k07c2"
},
"meta": {},
"tainted": false
},
"deposed": [],
"provider": "provider.aws"
}
【问题讨论】:
标签: amazon-web-services terraform