Terraform - como se referir a variáveis dentro de um valor interpolado

1

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.

    
por meangrape 29.09.2017 / 16:04

1 resposta

1

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

    
por 29.09.2017 / 17:25