如何使用 terraform 为我的 EC2 实例获取默认 CIDR 块?
How to get default CIDR block for my EC2 instances with terraform?
我想创建一个安全组,它允许我在子网内的实例之间进行通信,并且不在外部公开某些端口。
当然,我可以明确指定我的 CIDR,但是如何创建数据源,在默认 VPC 中为我的子网提供 CIDR 块?
使用 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)}"
}
我想创建一个安全组,它允许我在子网内的实例之间进行通信,并且不在外部公开某些端口。 当然,我可以明确指定我的 CIDR,但是如何创建数据源,在默认 VPC 中为我的子网提供 CIDR 块?
使用 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)}"
}