我想为我的AWS EC2实例使用terraform模块中的count.index来按递增顺序命名该实例
file: ec2/main.tf
resource "aws_instance" "instance"{
ami = "ami-xxx"
tags {
Name = "var.instance"
}
count = "var.count"
}
file: ec2instance.tf
module "ec2"{
source = "./ec2"
count = 3
instance_name = "firsttypeinstance-${count.index+1}"
}
module "ec20"{
source = "./ec2"
count = 2
instance_name = "secondtype-${count.index+1}"
}
我希望实例名称填充为
firsttypeinstance-1 firsttypeinstance-2 firsttypeinstance-3
secondtype-1 secondtype-2
但是我得到了我无法在模块中使用计数索引的错误
答案 0 :(得分:0)
除上述内容外,Terraform当前未使用参数名称
count
,for_each
和lifecycle
,但保留给计划中的将来功能使用。
但是,您可以在模块中创建my_count
变量,并将其用于模块内部的资源
模块ec2
resource "aws_instance" "instance"{
ami = "ami-xxx"
tags {
Name = "var.instance-${count.index}"
}
count = "var.my_count"
}
模块主要
module "ec2"{
source = "./ec2"
my_count = 3
instance_name = "firsttypeinstance" ## actually instance prefix
}
答案 1 :(得分:0)
如果您使用的是Terraform 0.12,则可以使用for循环功能:https://www.terraform.io/docs/configuration/expressions.html#for-expressions
如果您的年龄小于0.12(就像我一样),请不要走运。
我认为,向实例添加ID往往会使您的基础结构不那么“不变”。