1

我的要求是我需要获取vpc-foovpc-bar的 CIDR 地址并传递给资源“aws_security_group_rule”“ingress”

我尝试使用以下代码:

  • data "aws_vpcs" -> 获取给定 VPC 的 ID
  • 数据“aws_vpc”-> 使用 VPC id 制作一个列表
  • 资源“aws_security_group_rule”“入口”-> 将 VPC CIRD 作为入口传递
variable "list_of_vps"{
  type = "list"
  default = ["vpc-foo", "vpc-bar"]
}

variable "sg_name" {
  default = "sg-test"
}

data "aws_vpcs" "get_vpc"{
  count = "$length(var.list_of_vps)"
  filter {
    name   = "tag:Name"
    values = ["vpc-${element(var.list_of_vps, count.index)}"]
  }
}

data "aws_vpc" "get_vpc_ids" {
  count = "${length(data.aws_vpcs.get_vpc.ids)}"
  id = "${tolist(data.aws_vpcs.prod.ids)[count.index]}"
}

resource "aws_security_group_rule" "ingress" {
  count       = "${length(var.list_of_vps)}"
  type        = "ingress"
  from_port   = 22
  to_port     = 22
  protocol    = "TCP"
  cidr_blocks = ["${element(data.aws_vpc.get_vpc_ids.*.cidr_block, count.index)}"]
  security_group_id = "${var.sg_name}
}

有人可以帮忙吗?

4

0 回答 0