添加安全组时,我的terraform配置出现invaid CIDR错误

添加安全组时,我的terraform配置出现invaid CIDR错误,terraform,Terraform,我得到的错误是 错误:“\'10.0.1.0/24\”,“10.0.2.0/24\”不是有效的CIDR块:无效的CIDR地址:“10.0.1.0/24”,“10.0.2.0/24” 在security_group.tf第36行的资源“aws_security_group”“firstVPCPrivateVMSG”中: 36:资源“aws\U安全组”“firstVPCPrivateVMSG”{ 我的专有网络是10.0.0.0/16 下面是安全组块 resource "aws_secur

我得到的错误是

错误:“\'10.0.1.0/24\”,“10.0.2.0/24\”不是有效的CIDR块:无效的CIDR地址:“10.0.1.0/24”,“10.0.2.0/24”
在security_group.tf第36行的资源“aws_security_group”“firstVPCPrivateVMSG”中:
36:资源“aws\U安全组”“firstVPCPrivateVMSG”{
我的专有网络是10.0.0.0/16

下面是安全组块

resource "aws_security_group" "firstVPCPrivateVMSG"{
vpc_id = aws_vpc.firstVPC.id
name = "firstVPCPrivateVMSG"

ingress {
    description = "Allow ssh connections from VMs in Public Subnet"
    protocol = "tcp"
    from_port = 0
    to_port = 22
    cidr_blocks = [join(",", [for s in var.public_cidrs: format("\"%s\"",s)]),join(",", [for s in 
    var.private_cidrs: format("\"%s\"",s)])]
}

当您想要一个包含所有CIDR的数组时,您正在创建一个包含两个字符串的数组。只需使用
concat

ingress {
  description = "Allow ssh connections from VMs in Public Subnet"
  protocol = "tcp"
  from_port = 0
  to_port = 22
  cidr_blocks = concat(var.public_cidrs, var.private_cidrs)
}

variable.tf看起来像变量“vpc_cidr”{default=“10.0.0.0/16”}变量“public_cidr”{type=list default=[“10.0.1.0/24”,“10.0.2.0/24”]}变量“private_cidr”{type=list default=[“10.0.3.0/24”,“10.0.4.0/24”]}您的地形代码混乱,无法运行,但问题似乎在于您如何处理cidr列表。
join
cidr\u块
需要列表时,将列表转换为字符串。只需删除该列表和周围的
[]
。谢谢Dan。这正是我发布此查询后所做的,并且它成功了:-)。仍然将此信息发布在此处,以获得更多选择