Você não pode fazer isso em terraform
resource "aws_vpc" "${var.cluster}_vpc" {
Sim, você deseja criar um módulo e passar os valores para o módulo para fazer o que deseja facilmente
Em um arquivo terraform .tf, eu tenho uma variável, cluster
definida como:
variable "cluster" {
type = "string"
default = "test_cluster"
}
Eu uso a variável para definir um AWS VPC.
resource "aws_vpc" "${var.cluster}_vpc" {
# ... configuration ...
}
Meu problema é quando quero associar um conjunto de opções de DHCP da AWS usando o ID do AWS VPC definido anteriormente - o chamado ${var.cluster}_vpc
. Uma visão lógica do que estou tentando fazer (que não funciona porque o Terraform não suporta interpolação aninhada) é:
resource "aws_dhcp_options_association" "${var.cluster}_dhcp_assoc" {
"vpc_id" = "${{var.cluster}_vpc.id}"
}
Como faço para me referir a ${some_cluster_vpc.id}
quando some_cluster
é realmente definido por ${var.cluster}
?
OK. Eu acho que se eu adicionar o próprio VPC como um módulo, eu posso passar um ${cluster}
e retornar um ${vpc_id}
para ser usado pelos vários componentes que precisam desse valor.
EDITAR: Configurar o vpc.tf como um módulo foi a abordagem correta.