1) String, Number, Bool
variable "example_string" {
type = string
default = "Terraform"
}
variable "example_number" {
type = number
default = 10
}
variable "example_bool" {
type = bool
default = true
}
2) list, map, object, tuple, set, any
2-1) list
- 여러 값을 순서대로 저장하는 배열 형태의 자료구조
- 리스트의 모든 요소는 같은 데이터 타입이어야 함
- list(<타입>) 형태로 정의
variable "example_list" {
type = list(string)
default = ["aws", "gcp", "azure"]
}
output "cloud_providers" {
value = var.example_list[0] # "aws"
}
2-2) map
- key-value 형태의 데이터 구조
variable "example_map" {
type = map
default = {
aws = "Amazon Web Services"
gcp = "Google Cloud Platform"
azure = "Microsoft Azure"
}
}
output "aws_full_name" {
value = var.example_map["aws"] # "Amazon Web Services"
}
2-3) object
- 여러 다른 타입을 가진 속성을 포함하는 복합 데이터 구조
- object({ key = type, key = type, ... }) 형태로 정의
variable "example_object" {
type = object({
name = string
age = number
is_admin = bool
})
default = {
name = "Alice"
age = 30
is_admin = true
}
}
output "user_name" {
value = var.example_object.name # "Alice"
}
2-4) tuple
- 리스트와 유사하지만, 서로 다른 타입을 가질 수 있음
- tuple([<타입1>, <타입2>, ...]) 형태로 정의
variable "example_tuple" {
type = tuple([string, number, bool])
default = ["terraform", 1.2, true]
}
output "first_value" {
value = var.example_tuple[0] # "terraform"
}
2-5) set
- 리스트와 유사하지만 중복된 값이 없음
- set(<타입>) 형태로 정의
variable "example_set" {
type = set(string)
default = ["aws", "gcp", "azure"]
}
output "set_example" {
value = var.example_set
}
2-6) any
- any 타입을 사용하면 어떤 값이든 허용 가능
variable "example_any" {
type = any
default = "I can be anything!"
}
'Terraform' 카테고리의 다른 글
Terraform - tfstate (0) | 2025.02.11 |
---|---|
Terraform - Variables ( variables.tf ) (0) | 2025.02.10 |
Terraform - Resource 의존성 (Dependency) (0) | 2025.02.10 |
Terraform - Resource (0) | 2025.02.10 |