테라폼 구성 파일에 입력할 수 있는 값을 정의할 때 사용함
변수를 사용하여 동적이고 유연하게 재 사용 가능함
# variables.tf
variable "region" {
type = string
default = "us-west-1"
}
# main.tf
provider "aws" {
region = var.region # var.선언한변수
}
resource "aws_instance" "sample"{
ami = "ami-xxxxxxx"
instance_type = "t2.micro"
}
map : key-value 쌍
object
json 과 같은 객체 형태
variable "server"{ type = object({ name = string instance_type = string }) default = { name = "my-server" instance_type = "t2.micro" }
resource "aws_instance" "ec2" { name = var.server.name instance_type = var.server.instance_type
variable "example_tuple"{ type = tuple([string, number, bool]) // 형식 잘 맞출것 default = ["my_string", 23, true] output "tuple_example" { value = var.example_typle[0] // returns "my_string" }
variable "example_set" { type = set(string) default = ["v1", "v2", "v3"] } output "set_example" { value = var.my_set }
variable "any_example" { type = any default = { name = "my-resource" tags = { // map env = "prod" app = "app1" } } }
resource "aws_instance" "ec2" { name = var.any_example.name tags = var.v.tags