需要您的帮助。我被以下资源创建所困扰。使用Terraform v1.0.6
我需要在两个VPCs 中动态创建适当的子网
变量.tf
vpc_resource_networks = {
pnw-01 = [
[
{
subnet_name = "wb-01"
subnet_ip = "10.58.72.0/25"
description = "WEB01"
index = 0
},
{
subnet_name = "wb-02"
subnet_ip = "10.58.72.128/25"
description = "WEB02"
index = 1
}
],
[
{
subnet_name = "wb-01"
subnet_ip = "10.58.80.0/25"
description = "WEB01"
index = 0
},
{
subnet_name = "web-02"
subnet_ip = "10.58.72.128/25"
description = "WEB02"
index = 1
}
]
]
}
主.tf
locals {
wlb_net = element(keys(var.vpc_resource_networks), 0)
}
resource "aws_subnet" "wlb" {
count = length(module.aws_vpc_app_resource)
vpc_id = element(module.aws_vpc_app_resource.*.vpc_id, count.index)
dynamic "subnet_group" {
for_each = var.vpc_resource_networks[local.wlb_net][count.index]
content {
dynamic "subnet" {
for_each = subnet_group.value
content {
cidr_block = subnet.subnet_ip
availability_zone = element(var.azs, subnet.index)
tags = {
Name = subnet.subnet_name
}
}
}
}
}
我打算动态创建子网,即var.vpc_resource_networks.pnw01[0]应该在一个vpc上,另一个索引应该在另一个vpc上。上面的块返回
动态"子网组"{此处不应出现"subnet_group"类型的块。
请协助
查看aws_subnet的资源定义,我可以看到,正如错误消息所示,没有"的属性;subnet_group";。
有几种不同的资源类型是子网组,但用于不同的服务;如DMS、DocumentDB、DAX、Elasticache、MemoryDB、Neptune、RDS和Redshift。搜索术语";subnet_group";在提供者页面的左侧面板上。
也许AWS专家可以在这里发表评论,但我相信你试图在一个动作中做两件事。
首先,您应该创建子网并定义其范围,然后创建需要访问特定服务的不同子网的子网组。
以下是有关子网和子网组的更多信息。