Home
home

04. Terraform HCL - 변수

테라폼 HCL에서 선언하는 내용 중 변경될 수 있는 요소는 변수를 사용하는 것이 좋습니다.
변수를 정의하여 테라폼 파일을 손쉽게 재사용 가능합니다.

1. 테라폼 단순 변수 유형 (Terraform Simple Variable Type)

String
Number
Bool
variable "a-string" { type = string } variabble "this-is-a-number" { type = number } variable "true-or-false" { type = bool }
Shell
복사
변수 타입을 정의하지 않아도 테라폼이 유형을 결정할 수 있습니다.
할당한 값에 따라 테라폼이 변수 유형을 자동으로 인식합니다.
variable myvar { type = string default = "hello terraform" } variable mymap { type = map(string) default = { mykey = "my value" yourkey = "your value" } } variable mylist { type = list default = [1,2,3] }
Bash
복사
[Caption] variable 예시
terrform console ================= output ================= > var.myvar "hello terraform" > "${var.myvar}" "hello terraform" > var.mymap tomap({ "mykey" = "my value" "yourkey" = "your value" }) > var.mymap["mykey"] "my value" > var.mylist tolist([ 1, 2, 3, ]) > var.mylist[0] 1 > > element(var.mylist, 1) 2 > slice(var.mylist, 0, 2) tolist([ 1, 2, ])
Bash
복사
terraform console 명령어로 진입하여 변수 정보를 확인해 볼 수 있습니다.
변수 사용은 var.XXXX 또는 "${var.XXX}" 형태로 사용합니다.
element, slice 등의 함수를 활용하여 값을 표출할 수 있습니다.

2. 테라폼 복합 변수 유형 (Terraform Complex Variable Type)

List
[0,1,5,2]
List는 순서대로 나타냅니다.
하나의 유형으로 정의 (예를 들어 String 유형이면 모두 String)
Set
[1,2,5]
List와 비슷하지만 순서를 유지하지 않고 고유한 값만 유지
List가 [5,1,1,2]라면 Set은 [1,2,5]
Map
{”key” = “value” …}
key=value 형태로 쌍으로 존재
하나의 유형으로 정의됩니다. (예를 들어 String 유형이면 모두 String)
Object
{name = “John”, phone = “01044444444”}
Object는 Map과 동일하지만 요소 별로 다른 유형을 가질 수 있음
예를 들어 String 유형과 Number 유형을 정의할 수 있습니다.
Tuple
[0, “string”, false]
Tuple은 List와 동일하지만 요소 별로 다른 유형을 가질 수 있습니다.