Aquesta és una revisió antiga del document
terraform variables
input variables
- bloque declaración/valor por defecto:
variable "image_id" { type = string } variable "availability_zone_names" { type = list(string) default = ["us-west-1a"] } variable "docker_ports" { type = list(object({ internal = number external = number protocol = string })) default = [ { internal = 8300 external = 8300 protocol = "tcp" } ] }
- type (constraints) = bool, number, string, list(), set(), map(), object(), tuple([…])
- default
- description
- validation {condition,error_message} → en pruebas
- uso:
var.<NOMBRE_DECLARATIVO>
asignación de valores en variables del módulo raiz (Root Module)
- mediante parámetro en el cli
-var='<KEY>=«<VALUE>»' - usando ficheros de definición de variables: *.tfvars o *.tfvars.json
- que se pueden cargar automáticamente
image_id = "ami-abc123" availability_zone_names = [ "us-east-1a", "us-west-1c", ]
- terraform.tfvars o terraform.tfvars.json
- *.auto.tfvars o *.auto.tfvars.json
- o especificado como parámetro en el cli
-var-file=«<FILE.TFVARS>» - en estos ficheros solo se realiza la asignación de la variable
- los ficheros acabados en JSON se parsean como objeto
{ "image_id": "ami-abc123", "availability_zone_names": ["us-west-1a", "us-west-1c"] }
- variables de entorno:
- cualquier variables que empiece por TF_VAR_
- orden de preferencia (orden en el cargan, el posterior prevalece al anterior):
- terraform.tfvars
- terraform.tfvars.json
- *.auto.tfvars o *.auto.tfvars, alfabéticamente
-varo-var-file