如何使用terraform在for循环中创建多个资源?
我已经看了一些关于terraform的文档和我的课程,我不知道如何做我想做的事情。我想创建一个for循环,在其中我想创建一个S3事件通知,创建一个侦听该通知的Sns主题,创建一个Sqs队列,然后将该队列订阅到Sns主题。这似乎是因为地形中的回路不够先进,无法做到这一点。是否我错了,是否有任何文档或示例解释如何在这个用例中使用for循环如何使用terraform在for循环中创建多个资源?,terraform,Terraform,我已经看了一些关于terraform的文档和我的课程,我不知道如何做我想做的事情。我想创建一个for循环,在其中我想创建一个S3事件通知,创建一个侦听该通知的Sns主题,创建一个Sqs队列,然后将该队列订阅到Sns主题。这似乎是因为地形中的回路不够先进,无法做到这一点。是否我错了,是否有任何文档或示例解释如何在这个用例中使用for循环 提前感谢。创建AWS VPC子网的示例,然后将其提供给AWS EC2实例 resource "aws_subnet" "public" { count = l
提前感谢。创建AWS VPC子网的示例,然后将其提供给AWS EC2实例
resource "aws_subnet" "public" {
count = length(var.public_subnet_cidr_blocks)
vpc_id = var.vpc_id
cidr_block = var.public_subnet_cidr_blocks[count.index]
}
resource "aws_instance" "public_ec2" {
count = length(var.public_subnet_ids)
subnet_id = var.public_subnet_ids[count.index]
ami = var.ami_id
instance_type = "t2.micro"
tags = {
Name = "PublicEC2${count.index}}"
}
provisioner "local-exec" {
command = <<EOF
echo "Public EC2 ${count.index} ID is ${self.id}"
EOF
}
}
For expression基本上是用于值,而不是用于创建资源
[ for name in var.names:
aws_s3_bucket {...}
aws_sns_topic {...}
]
- for表达式通过转换另一个复杂类型值来创建复杂类型值
- 默认情况下,资源块配置一个真实的基础结构对象。但是,有时您需要管理几个类似的对象,例如一个固定的计算实例池Terraform有两种方法可以做到这一点:计数和计算每种