首先,我创建了3个子网,我想将它们转换成地图形式,以便查找后面的代码。例如:
[0 = "${aws_subnet.subnet-1.id}"
1 = "${aws_subnet.subnet-2.id}"
2 = "${aws_subnet.subnet -3.id}"]resource "aws_vpc" "module_vpc" {
cidr_block = "10.0.0.0/16"
instance_tenancy = "default"
}
resource "aws_subnet" "subnet-1" {
vpc_id = "${aws_vpc.module_vpc.id}"
cidr_block = "10.0.1.0/24"
}
resource "aws_subnet" "subnet-2" {
vpc_id = "${aws_vpc.module_vpc.id}"
cidr_block = "10.0.2.0/24"
}
resource "aws_subnet" "subnet-3" {
vpc_id = "${aws_vpc.module_vpc.id}"
cidr_block = "10.0.3.0/24"
}以下是使用查找的代码
resource "aws_instance" "server" {
count = 3
subnet_id = "${lookup(var.subnets, count.index % 3)}"
}我该怎么做?谢谢大家
发布于 2020-07-29 20:32:17
基于list的可扩展性更强的另一种方式如何:
variable "subnet_cidrs" {
default = ["10.0.1.0/24", "10.0.2.0/24", "10.0.3.0/24"]
}
resource "aws_vpc" "module_vpc" {
cidr_block = "10.0.0.0/16"
instance_tenancy = "default"
}
resource "aws_subnet" "subnet" {
count = length(var.subnet_cidrs)
vpc_id = aws_vpc.module_vpc.id
cidr_block = element(var.subnet_cidrs, count.index)
}
resource "aws_instance" "server" {
count = 3
subnet_id = element(aws_subnet.subnet.*.id, count.index) # modulo is automatically applied
}我假设terraform 0.12,因为您没有指定任何其他版本。
https://stackoverflow.com/questions/63151894
复制相似问题