Loops 地形环
是否可以创建一个创建此资源的循环?同样的资源有很多重复。我尝试使用“贴图”创建循环,但“贴图”不接受任何其他默认块 或者手动创建所有4个资源是否正常?只是一些建议,因为答案已经足够了,我正在努力自己学习Loops 地形环,loops,terraform,Loops,Terraform,是否可以创建一个创建此资源的循环?同样的资源有很多重复。我尝试使用“贴图”创建循环,但“贴图”不接受任何其他默认块 或者手动创建所有4个资源是否正常?只是一些建议,因为答案已经足够了,我正在努力自己学习 resource "aws_subnet" "public-test-a" { vpc_id = aws_vpc.vpc-test-02.id cidr_block = "10.0.0.16/28" map_public_i
resource "aws_subnet" "public-test-a" {
vpc_id = aws_vpc.vpc-test-02.id
cidr_block = "10.0.0.16/28"
map_public_ip_on_launch = true
availability_zone = var.AZ[1]
tags = {
Name = var.subnets_names[index]
}
}
resource "aws_subnet" "public-test-b" {
vpc_id = aws_vpc.vpc-test-02.id
cidr_block = "10.0.0.16/28"
map_public_ip_on_launch = true
availability_zone = var.AZ[1]
tags = {
Name = "public-test-b"
}
}
resource "aws_subnet" "private-test-a" {
vpc_id = aws_vpc.vpc-test-02.id
cidr_block = "10.0.0.32/28"
availability_zone = var.AZ[0]
tags = {
Name = "private-test-a"
}
}
resource "aws_subnet" "private-test-b" {
vpc_id = aws_vpc.vpc-test-02.id
cidr_block = "10.0.0.48/28"
availability_zone = var.AZ[1]
tags = {
Name = "private-test-b"
}
}
我试过这样的东西,但似乎不太有效
此外,我们不能在变量内部使用aws_vpc.vpc-test-02.id,因为它是另一个tf的一部分
variable "subnets" {
type = map
default = {
vpc_id = aws_vpc.vpc-test-02.id
}
public-test-a = {
map_public_ip_on_launch = true
availability_zone = var.AZ[0]
}
public-test-b = {
map_public_ip_on_launch = true
availability_zone = var.AZ[1]
}
private-test-a = {
availability_zone = var.AZ[0]
}
private-test-b = {
availability_zone = var.AZ[1]
}
}
variable "AZ" {
type = list
default = ["ap-south-1a", "ap-south-1b", "ap-south-1c"]
}
variable "subnets_cird" {
type = list
default = ["10.0.0.0/28", "10.0.0.16/26", "10.0.0.32/28", "10.0.0.48/28"]
}
variable "subnets_names" {
type = list
default = ["public-test-a", "public-test-b", "private-test-a", "private-test-b"]
}
对于此搜索计数以及terraform文档中的每个搜索计数。
下面是一个示例,说明如何用一个公共测试替换public-test-a和public-test-b:
variable "number_of_subnets" {
default = 2
}
resource "aws_subnet" "public-test" {
count = var.number_of_subnets
vpc_id = aws_vpc.vpc-test-02.id
cidr_block = "10.0.0.16/28"
map_public_ip_on_launch = true
availability_zone = var.AZ[1]
tags = {
# here you pick the right name according to the subnet index, where e.g subnets_names = ["public-test-a","public-test-b"]
Name = var.subnets_names[count.index]
}
}
对于私密测试也可以这样做
关于你尝试过的事情。无法为变量分配其他变量。要实现此功能,请使用局部变量:
locals {
x = aws_vpc.vpc-test-02.id
}
然后访问值,如
local.x
对于此搜索计数以及terraform文档中的每个搜索计数。
下面是一个示例,说明如何用一个公共测试替换public-test-a和public-test-b:
variable "number_of_subnets" {
default = 2
}
resource "aws_subnet" "public-test" {
count = var.number_of_subnets
vpc_id = aws_vpc.vpc-test-02.id
cidr_block = "10.0.0.16/28"
map_public_ip_on_launch = true
availability_zone = var.AZ[1]
tags = {
# here you pick the right name according to the subnet index, where e.g subnets_names = ["public-test-a","public-test-b"]
Name = var.subnets_names[count.index]
}
}
对于私密测试也可以这样做
关于你尝试过的事情。无法为变量分配其他变量。要实现此功能,请使用局部变量:
locals {
x = aws_vpc.vpc-test-02.id
}
然后访问值,如
local.x