При использовании модуля terraform-aws-modules / security-group / aws я могу указать CIDR_BLOCK со строкой "10.211.103.254/32", но я не могу ссылаться на переменную, которая по существу содержит то же значение, что провереновывод terraform:
Apply complete! Resources: 1 added, 4 changed, 1 destroyed.
Outputs:
blah_private_ip = 10.211.103.254/32
Например, следующий код работает
output "blah_private_ip" {
value = "${aws_instance.SERVER-NAME-01.private_ip}/32"
}
module "blahsvr-sg" {
source = "terraform-aws-modules/security-group/aws"
name = "blahsvr-sg"
description = "Security group for blah server"
vpc_id = "${module.vpc.vpc_id}"
ingress_with_cidr_blocks = [
{
from_port = 443
to_port = 443
protocol = "tcp"
description = "HTTPS from server- managed by terraform"
cidr_blocks = "10.211.103.254/32" # works
#cidr_blocks = "${var.blah_private_ip}" # gives error
},
]
egress_with_cidr_blocks = [
{
from_port = "0"
to_port = "65535"
protocol = "-1"
description = "ALL"
cidr_blocks = "0.0.0.0/0"
},
]
}
Однако тот же код, но подставляющий вместо строки cidr_blocks ссылку на переменную "$ {var.blah_private_ip}" вместовыдает следующую ошибку применения терраформы:
Error: module.gxesvr-sg.aws_security_group_rule.ingress_with_cidr_blocks[0]: "cidr_blocks.0" must contain a valid CIDR, got error parsing: invalid CIDR address:
Я также пытался обернуть его в определение блока CIDR, но я не знаю, какие значения иметь для / 32 (один IP-адрес).
cidr_blocks = "${cidrsubnet("${var.blah_private_ip}", 8, 0)}"
cidr_blocks = "${cidrsubnet("${var.blah_private_ip}", 16, 0 )}"
Надеюсь, кто-нибудь поможет мне отладить это.