No tienes acceso a esta clase

隆Contin煤a aprendiendo! 脷nete y comienza a potenciar tu carrera

Archivos de definici贸n y variables

15/27
Recursos

Nuestro archivo de configuraci贸n de momento no es muy reutilizable ya que todos los valores se encuentran ya definidos, Terraform nos permite que en lugar de a帽adir valores est谩ticos podamos definir nuestro archivo con variables.

Las variables dentro de Terraform se deben definir e instanciar, una buena pr谩ctica es tener definidas las variables en un archivo e instanciarse en otro.

Terraform nos permite usar variables de tipo String, List y Map. A cada variable podemos a帽adirle un valor por default, una descripci贸n y el tipo de la variable, actualmente Terraform identifica el tipo de variable autom谩ticamente.

El archivo donde asignamos los valores de las variables debe terminar en .tfvars.

Aportes 11

Preguntas 2

Ordenar por:

Los aportes, preguntas y respuestas son vitales para aprender en comunidad. Reg铆strate o inicia sesi贸n para participar.

Es comun que cuando se destruye la infraestructura no se quiera destruir algun recurso en espesifico (por ejemplo la base de datos o algo asi) asi que podemos espesificarlo en la definicion de dicho recurso de la siguiente panera

resource "aws_db_instance" "example" {
  # ...
  lifecycle {
    prevent_destroy = true # no destruir cuando se aplique terraform destroy
  }
  timeouts {
    create = "60m"
    delete = "2h"
  }
}

En VS Code la extesi贸n de Anton Kulikov de Terraform ya soporta la versi贸n 0.12 de Terraform, para que no les marque error cuando declaren variables.

Que se identifique el tipo de variable usado se puede hacer desde terraform 0.12, m谩s informaci贸n ac谩 https://www.terraform.io/docs/configuration/variables.html

Por buena practicas en el archivo variables . tf deben declararse variables no sensibles al proyecto, en el fiche terraform . tfvars si deber铆amos declarar los valores sensibles del proyecto.

馃く馃く馃く Brutal lo que se puede hacer, parece magia negra.

Doc Oficial - Variables en Terraform
Link

Types
The Terraform language uses the following types for its values:

string: a sequence of Unicode characters representing some text, like 鈥渉ello鈥.
number: a numeric value. The number type can represent both whole numbers like 15 and fractional values like 6.283185.
bool: a boolean value, either true or false. bool values can be used in conditional logic.
list (or tuple): a sequence of values, like [鈥渦s-west-1a鈥, 鈥渦s-west-1c鈥漖. Elements in a list or tuple are identified by consecutive whole numbers, starting with zero.
map (or object): a group of values identified by named labels, like {name = 鈥淢abel鈥, age = 52}.
Strings, numbers, and bools are sometimes called primitive types. Lists/tuples and maps/objects are sometimes called complex types, structural types, or collection types.

Finally, there is one special value that has no type:

null: a value that represents absence or omission. If you set an argument of a resource to null, Terraform behaves as though you had completely omitted it 鈥 it will use the argument鈥檚 default value if it has one, or raise an error if the argument is mandatory. null is most useful in conditional expressions, so you can dynamically omit an argument if a condition isn鈥檛 met.

excelente explicacion, me sorprendio mucho poder encontrar un curso de terraform aqui en platzi, definitivamente de las mejores inversiones que he hecho en mi vida profesional, muchas gracias Yolanda, pude aplicar rapidamente los conocimientos en mi trabajo.

Muy potente - funcional

provider "aws" {
  region = "us-east-2"
}

resource "aws_instance" "platzi-instance" {
  ami           = var.ami_id
  instance_type = var.instance_type
  tags          = var.tags
}

me parecio chevere que si no le especifico el archivo de las variables terraform solicita los valores de entrada para poder ejecutar