添加安全组时,我的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。这正是我发布此查询后所做的,并且它成功了:-)。仍然将此信息发布在此处,以获得更多选择