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 ========================================= INPUT: > 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, ]) :END
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와 동일하지만 요소 별로 다른 유형을 가질 수 있습니다.