我可以遍历多个区域的数据提供者来创建类似地图的东西吗?
Can I iterate over a data provider for multiple region to create something like a map?
我想在我的 Terraform 中创建一个地图或 beantalk 区域列表(用于 Route53 的东西),有没有比以下更优雅的方法来完成此操作:
data "aws_elastic_beanstalk_hosted_zone" "eb-us-east-2" {
region = "us-east-2"
}
data "aws_elastic_beanstalk_hosted_zone" "eb-us-east-1" {
region = "us-east-1"
}
# ... and so on
是否可以迭代 aws_elastic_beanstalk_hosted_zone 并在我可以使用的 vars 中获取每个区域的区域 ID?
您始终可以使用 count meta parameter:
遍历列表
variable "regions" {
default = [
"us-east-1",
"us-east-2",
]
}
data "aws_elastic_beanstalk_hosted_zone" "eb_zones" {
count = "${length(var.regions)}"
region = "${var.regions[count.index]}"
}
output "eb_zones" {
value = "${data.aws_elastic_beanstalk_hosted_zone.eb_zones.*.id}"
}
这将输出以下内容:
Outputs:
eb_zones = [
Z117KPS5GTRQ2G,
Z14LCN19Q5QHIC
]
我想在我的 Terraform 中创建一个地图或 beantalk 区域列表(用于 Route53 的东西),有没有比以下更优雅的方法来完成此操作:
data "aws_elastic_beanstalk_hosted_zone" "eb-us-east-2" {
region = "us-east-2"
}
data "aws_elastic_beanstalk_hosted_zone" "eb-us-east-1" {
region = "us-east-1"
}
# ... and so on
是否可以迭代 aws_elastic_beanstalk_hosted_zone 并在我可以使用的 vars 中获取每个区域的区域 ID?
您始终可以使用 count meta parameter:
遍历列表variable "regions" {
default = [
"us-east-1",
"us-east-2",
]
}
data "aws_elastic_beanstalk_hosted_zone" "eb_zones" {
count = "${length(var.regions)}"
region = "${var.regions[count.index]}"
}
output "eb_zones" {
value = "${data.aws_elastic_beanstalk_hosted_zone.eb_zones.*.id}"
}
这将输出以下内容:
Outputs:
eb_zones = [
Z117KPS5GTRQ2G,
Z14LCN19Q5QHIC
]