【发布时间】:2019-11-14 16:32:16
【问题描述】:
我使用 for_each 循环创建了多个子网和多个 VPC 端点,如下所示:
### VARIABLES ###
variable "private_cidr_mask" {
default = {
"us-west-1a" = "10.0.1.0/24"
"us-west-1b" = "10.0.2.0/24"
}
}
variable "vpc_endpoints" {
default = [
"com.amazonaws.us-west-1.ecs-agent",
"com.amazonaws.us-west-1.ecs-telemetry",
"com.amazonaws.us-west-1.ecs"
]
}
### RESOURCES ###
resource "aws_subnet" "private_subnet" {
for_each = var.private_cidr_mask
vpc_id = aws_vpc.vpc.id
availability_zone = each.key
cidr_block = each.value
}
resource "aws_vpc_endpoint" "vpc_endpoint" {
for_each = toset(var.vpc_endpoints)
vpc_id = aws_vpc.vpc.id
vpc_endpoint_type = "Interface"
service_name = each.value
security_group_ids = [ aws_security_group.security_group.id ]
private_dns_enabled = true
}
现在我必须使用 aws_vpc_endpoint_subnet_association 将每个 VPC 端点分配给每个私有子网:
resource "aws_vpc_endpoint_subnet_association" "vpc_endpoint_subnet_association" {
vpc_endpoint_id = <every endpoint>
subnet_id = <every subnet>
}
如何在 Terraform 中实现这一点?我尝试了嵌套的 for_each 循环但没有成功。
【问题讨论】:
-
terraform.io/docs/configuration/functions/… 的示例可能会提供一些有用的指示
标签: terraform