Terraform我正在计数。索引始终为0
Terraform v0.12.29 provider.aws v3.7.0 Terraform我正在计数。索引始终为0 10.x0.0.0/23Terraform我正在计数。索引始终为0,terraform,terraform-provider-aws,terraform0.12+,Terraform,Terraform Provider Aws,Terraform0.12+,Terraform v0.12.29 provider.aws v3.7.0 Terraform我正在计数。索引始终为0 10.x0.0.0/23 resource "aws_subnet" "public" { count = length(var.availability_zones) vpc_id = aws_vpc.default.id cidr_block
resource "aws_subnet" "public" {
count = length(var.availability_zones)
vpc_id = aws_vpc.default.id
cidr_block = cidrsubnet(format("%s.%s.%s",join(".",slice(split(".",var.cidr_block), 0, 2)), count.index ,split(".",var.cidr_block)[3]), var.public_newbits, count.index)
availability_zone = element(var.availability_zones, count.index)
map_public_ip_on_launch = true
tags = merge(map("Name", "${var.namespace}-${var.environment}-public-${count.index + 1}"), var.tags)
}
地形图
cidr_块两个子网中的值均为0
# aws_subnet.public[0] will be created
+ resource "aws_subnet" "public" {
+ arn = (known after apply)
+ assign_ipv6_address_on_creation = false
+ availability_zone = "ap-southeast-1a"
+ availability_zone_id = (known after apply)
+ cidr_block = "10.x0.0.0/27"
+ id = (known after apply)
+ ipv6_cidr_block_association_id = (known after apply)
+ map_public_ip_on_launch = true
+ owner_id = (known after apply)
+ vpc_id = (known after apply)
}
# aws_subnet.public[1] will be created
+ resource "aws_subnet" "public" {
+ arn = (known after apply)
+ assign_ipv6_address_on_creation = false
+ availability_zone = "ap-southeast-1b"
+ availability_zone_id = (known after apply)
+ cidr_block = "10.x0.0.32/27"
+ id = (known after apply)
+ ipv6_cidr_block_association_id = (known after apply)
+ map_public_ip_on_launch = true
+ owner_id = (known after apply)
+ vpc_id = (known after apply)
}
这是我的错误的答案。cidrsubnet()相当棘手,我花了一些时间才理解它
resource "aws_subnet" "public" {
count = length(var.availability_zones)
vpc_id = aws_vpc.default.id
cidr_block = cidrsubnet(var.cidr_block, var.public_newbits, count.index)
availability_zone = element(var.availability_zones, count.index)
map_public_ip_on_launch = true
tags = merge( var.tags, map("Name", "${var.environment}-${var.namespace}-mr-public-${count.index + 1}"))
}
var.availability\u zones
的形式是什么?能否请您澄清一下为什么您认为count.index
为零?哪一个地方只有零?您的地形图显示,由于创建了两个子网,因此其不为零。还请指定两个cidr_块输出的预期结果,以及var.cidr_块的完整定义,var.public_块的完整定义。