Diferències
Ací es mostren les diferències entre la revisió seleccionada i la versió actual de la pàgina.
| Ambdós costats versió prèvia Revisió prèvia Següent revisió | Revisió prèvia | ||
| tech:terraform:variables [25/03/2020 02:40] – [acceso] mate | tech:terraform:variables [10/06/2025 06:50] (actual) – [input variables] mate | ||
|---|---|---|---|
| Línia 1: | Línia 1: | ||
| = terraform variables | = terraform variables | ||
| + | * [[https:// | ||
| + | == declaración | ||
| + | * recomendado en fichero aparte **variables.tf** | ||
| + | declaración: | ||
| + | variable " | ||
| + | description = "AWS region" | ||
| + | type = string | ||
| + | default | ||
| + | } | ||
| + | |||
| + | variable " | ||
| + | description = " | ||
| + | type = number | ||
| + | default | ||
| + | } | ||
| + | |||
| + | variable " | ||
| + | description = " | ||
| + | type = bool | ||
| + | default | ||
| + | } | ||
| + | |||
| + | variable " | ||
| + | description = "Tags to set for all resources" | ||
| + | type = map(string) | ||
| + | default | ||
| + | project | ||
| + | environment = " | ||
| + | } | ||
| + | } | ||
| + | </ | ||
| + | |||
| + | uso: <code properties> | ||
| + | region | ||
| + | } | ||
| + | |||
| + | | ||
| + | | ||
| + | |||
| + | | ||
| + | |||
| + | | ||
| + | |||
| + | #tags = { | ||
| + | # | ||
| + | # | ||
| + | #} | ||
| + | tags = var.resource_tags | ||
| + | } | ||
| + | |||
| + | |||
| + | </ | ||
| + | |||
| + | == list, map, set | ||
| + | |||
| + | * **list**: lista de valores del mismo tipo, retornados en el mismo orden. | ||
| + | * Admite el uso de varios tipos: '' | ||
| + | * <code properties> | ||
| + | * <code properties> | ||
| + | * <code properties> | ||
| + | description = " | ||
| + | type = list(string) | ||
| + | default | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | ] | ||
| + | }</ | ||
| + | * **map**: colección de valores key=value, identificado cada uno con una cadena | ||
| + | * <code properties> | ||
| + | { | ||
| + | " | ||
| + | " | ||
| + | }</ | ||
| + | * <code properties> | ||
| + | { | ||
| + | " | ||
| + | " | ||
| + | }</ | ||
| + | * **set**: colección de __valores únicos__ sin identificadores secundarios y sin orden | ||
| + | |||
| + | === funciones | ||
| + | * [[https:// | ||
| + | |||
| + | == más tipos | ||
| + | * **object**: colección de atributos identificados, | ||
| + | * <code javascript> | ||
| + | name = " | ||
| + | age = 52 | ||
| + | }</ | ||
| + | * <code ruby> | ||
| + | type = object({ | ||
| + | pre = string, | ||
| + | int = string, | ||
| + | default = string | ||
| + | }) | ||
| + | } | ||
| + | wks_rg_name = { | ||
| + | pre = " | ||
| + | int = " | ||
| + | default = "" | ||
| + | } | ||
| + | |||
| + | resource " | ||
| + | name = " | ||
| + | location = " | ||
| + | }</ | ||
| + | * **tuple**: colección de elementos consecutiva de diferentes tipos | ||
| + | * <code properties> | ||
| + | |||
| + | /via: [[https:// | ||
| + | |||
| == input variables | == input variables | ||
| * bloque declaración/ | * bloque declaración/ | ||
| Línia 32: | Línia 149: | ||
| * uso:< | * uso:< | ||
| + | == interpolación | ||
| + | <code properties> | ||
| + | name = " | ||
| + | </ | ||
| + | |||
| + | == validación | ||
| + | <code properties> | ||
| + | variable " | ||
| + | description = "Tags to set for all resources" | ||
| + | type = map(string) | ||
| + | default | ||
| + | project | ||
| + | environment = " | ||
| + | } | ||
| + | |||
| + | validation { | ||
| + | condition | ||
| + | error_message = "The project tag must be no more than 16 characters, and only contain letters, numbers, and hyphens." | ||
| + | } | ||
| + | |||
| + | validation { | ||
| + | condition | ||
| + | error_message = "The environment tag must be no more than 8 characters, and only contain letters, numbers, and hyphens." | ||
| + | } | ||
| + | } | ||
| + | |||
| + | </ | ||
| == asignación de valores en variables del módulo raiz (Root Module) | == asignación de valores en variables del módulo raiz (Root Module) | ||
| * mediante parámetro en el cli '' | * mediante parámetro en el cli '' | ||
| Línia 42: | Línia 186: | ||
| * **terraform.tfvars** o **terraform.tfvars.json** | * **terraform.tfvars** o **terraform.tfvars.json** | ||
| * **%%*%%.auto.tfvars** o **%%*%%.auto.tfvars.json** | * **%%*%%.auto.tfvars** o **%%*%%.auto.tfvars.json** | ||
| - | * o especificado como parámetro en el cli '' | + | * o especificado como parámetro en el cli |
| + | * en fichero específico | ||
| + | * en el propio comando '' | ||
| * en estos ficheros solo se realiza la asignación de la variable | * en estos ficheros solo se realiza la asignación de la variable | ||
| * los ficheros acabados en JSON se parsean como objeto< | * los ficheros acabados en JSON se parsean como objeto< | ||
| Línia 97: | Línia 243: | ||
| * mediante **module.output_name** | * mediante **module.output_name** | ||
| - | == modules | ||
| == Local values | == Local values | ||