Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

513
Visualizações
Terraform: ¿por qué no puedo asignar un valor de 1 variable a otra variable?

Estoy tratando de asignar una variable de salida de un módulo a una variable local para poder usar convenientemente una variable local. Hay otra manera ?

 variable "vpc_id" { default = "${module.vpc.vpc_id}" }

El error que estoy recibiendo es:

 Error: Unsupported argument on main.tf line 22, in variable "subnetid_private": 22: default = "${module.vpc.subnet_private}" Variables may not be used here..

Pasé una buena cantidad de tiempo buscando en Google pero no pude ver ningún ejemplo. Me estoy perdiendo de algo. Esta es una característica de conveniencia bastante estándar de cualquier idioma.

over 4 years ago · Santiago Trujillo
3 Respostas
Responde à pergunta

0

puedes reemplazar con locales

https://www.terraform.io/docs/configuration/locals.html

 locals { vpc_id = module.vpc.vpc_id }

y luego hacer referencia a él como local.vpc_id

over 4 years ago · Santiago Trujillo Relatório

0

Pensé lo mismo cuando comencé a usar Terraform.

El problema es nombrar. Un bloque de variables de Terraform es más como un constructor constante o final o un parámetro de método en otros lenguajes.

De la documentación de valor local , dice esto:

Un valor local asigna un nombre a una expresión, lo que permite que se use varias veces dentro de un módulo sin repetirlo.

Comparación de módulos con funciones en un lenguaje de programación tradicional: si las variables de entrada son análogas a los argumentos de la función y los valores de salida son análogos a los valores de retorno de la función, entonces los valores locales son comparables a los símbolos temporales locales de una función.

Cuando escribes:

 variable "vpc_id" { }

Terraform dice "ah, le gustaría que las personas que llamen a este módulo puedan entregar una cadena llamada vpc_id". Definitivamente no es lo que estás buscando.

Para el tipo de caso que tenga, un valor local es lo que proporciona Terraform:

 locals { vpc_id = module.vpc.vpc_id }
over 4 years ago · Santiago Trujillo Relatório

0

En terraform 0.12, puede usar variables en variables como esta:

 variable "var1" { type = string default = "this is var 1" } variable "var2" { type = string default = "$${variable.var1}" }

la salida de esto es:

 $ terraform apply Apply complete! Resources: 0 added, 0 changed, 0 destroyed.
over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda