首页 > 解决方案 > 如何使用 terraform 为我的 EC2 实例获取默认 CIDR 块?

问题描述

我想创建一个安全组,它允许我在子网内的实例之间进行通信,并且不暴露一些外部端口。当然我可以明确指定我的 CIDR,但是如何在默认 VPC 中创建为我的子网提供 CIDR 块的数据源?

标签: amazon-web-servicesamazon-ec2terraformterraform-provider-aws

解决方案


使用 terraform 数据源aws_vpc,您可以获得所需的内容。

该示例显示了您需要的内容。

variable "vpc_id" {}

data "aws_vpc" "selected" {
  id = "${var.vpc_id}"
}

resource "aws_subnet" "example" {
  vpc_id            = "${data.aws_vpc.selected.id}"
  availability_zone = "us-west-2a"
  cidr_block        = "${cidrsubnet(data.aws_vpc.selected.cidr_block, 4, 1)}"
}

推荐阅读