在已经使用for_each的情况下迭代列表(Terraform 0.12)
在Terraform 0.12版本中,引入了for_each功能,它允许我们在资源定义中迭代一个列表或映射,并为每个元素创建一个资源实例。在已经使用for_each的情况下迭代列表时,我们可以按照以下步骤操作:
variable "instance_names" {
type = list(string)
default = ["instance1", "instance2", "instance3"]
}
resource "aws_instance" "example" {
for_each = var.instance_names
ami = "ami-0c94855ba95c71c99"
instance_type = "t2.micro"
tags = {
Name = each.value
}
}
在上面的示例中,for_each = var.instance_names告诉Terraform使用var.instance_names中的每个元素来创建一个虚拟机实例。每个虚拟机实例都有一个唯一的名称,该名称来自于var.instance_names中的元素。
$ terraform init
$ terraform apply
在上面的示例中,Terraform将会创建三个虚拟机实例,它们的名称分别为instance1、instance2和instance3。
对于Terraform 0.12版本之前的版本,我们可以使用count来实现类似的功能。然而,使用for_each可以更加灵活地迭代列表或映射,并且可以在配置文件中使用动态生成的键。
推荐的腾讯云相关产品和产品介绍链接地址:
请注意,以上链接仅供参考,具体的产品选择应根据实际需求进行评估和决策。
领取专属 10元无门槛券
手把手带您无忧上云