Estou aprendendo terraform e não entendo porque a variável count.index
não está sendo expandida.
Quando executo terraform apply
o nome da instância EC2 torna-seVM[count.index]
Por que [count.index] não é expandido? Eu esperava que o nome fosseVM0
arquivo que criei para teste
main.tf
provider "aws" {
access_key = var.aws_access_key_id
secret_key = var.aws_secret_access_key
region = "us-east-1"
}
resource "aws_instance" "aws_vm" {
ami = var.ami
instance_type = var.type
count = var.number_of_instances
key_name = var.ami_key
tags = {
Name = "${var.name_tag}[count.index]"
}
}
A interpolação de string do Terraform só acontece dentro de um arquivo
${}
. Você precisa agrupar quaisquer variáveis ou expressões incorporadas em uma string em um arquivo${}
. Você fez isso com avar_name_tag
variável, mas não com acount.index
variável. Mude seu código para este:Portanto, se
var.name_tag
fosse um valor de string como"my_server"
, você acabaria com tags de nome em suas instâncias do EC2 com valores como:my_server[0]
emy_server[1]