- 2-1. 테라폼 변수 타입, 우선순위2024년 06월 20일
- yeongki0944
- 작성자
- 2024.06.20.:33
Type 설명 String 문자 시퀀스 Number 숫자 값 Bool 불리언 값(true 또는 false) Any 모든 유형을 명시적으로 허용 List(<Type>) 인덱스로 접근하는 순서가 있는 값의 집합 Map(<Type>) Key-Value 쌍으로 구성된 집합, 키로 접근 가능, 키값 기준 정렬 Set(<Type>) 중복이 없는 값의 집합, 순서 없음. Object 각 속성이 고유한 유형(Object)를 가지는 속성의 집합 Tuple 위치로 식별되는 일련의 요소, 각 요소는 고유한 유형을 가짐. # string variable "string" { type = string description = "var String" default = "myString" } # number variable "number_example" { description = "An example of a number variable in Terraform" type = number default = 42 } # boolean variable "boolean" { default = true } # list(number) variable "list_numeric_example" { description = "An example of a numeric list in Terraform" type = list(number) default = [1, 2, 3] } # map(string) variable "map_example" { description = "An example of a map in Terraform" type = map(string) default = { key1 = "value1" key2 = "value2" key3 = "value3" } } # Object variable "object_example" { description = "An example of a structural type in Terraform" type = object({ name = string age = number tags = list(string) enabled = bool }) default = { name = "value1" age = 42 tags = ["a", "b", "c"] enabled = true } } # tuple variable "tuple" { type = tuple([string, number, bool]) default = ["abc", 123, true] } variable "ingress_rules" { # optional ( >= terraform 1.3.0) type = list(object({ port = number, description = optional(string), protocol = optional(string, "tcp"), })) default = [ { port = 80, description = "web" }, { port = 53, protocol = "udp" }] }
변수 우선순위
C언어의 연산자 우선순위는 1번이 가장 먼저 적용되는 것과 다르게,
Terraform에서 변수 우선순위는 순위가 높을 수록 먼저 적용된다.우선순위 선언 방식 예시 1 [실행 후 입력]
- Terraform apply 실행 시 직접 변수 입력terraform apply -auto-approve 2 [variable 블록의 default 값]
- Terraform 코드 파일에서 기본 값으로 설정variable "my_var" { default = "var2" } 3 [환경 변수 (TF_VAR)]
- 환경 변수로 설정된 값export TF_VAR_my_var=var3 4 [terraform.tfvars 파일]
- Terraform tfvars 파일에 설정된 값echo 'my_var="var4"' > terraform.tfvars 5 [*.auto.tfvars 파일]
- 자동으로 읽히는 tfvars 파일에 설정된 값echo 'my_var="var5_a"' > a.auto.tfvars 6 [*.auto.tfvars.json 파일]
- 자동으로 읽히는 tfvars.json 파일에 설정된 값cat <<EOF > a.auto.tfvars.json { "my_var" : "var6_a" } EOF 7 [CLI 실행 시 -var 인수 또는 -var-file 파일 지정]
- Terraform apply 실행 시 -var 인수로 지정한 값terraform apply -auto-approve -var=my_var=var7 변수관련 파일
파일 [terraform.tfvars 파일] - 테라폼에서 기본적으로 인식하고 읽는 파일
- 루트 모듈의 main.tf 파일과 같은 위치에 생성
- 명시적으로 지정하지 않아도 테라폼이 자동으로 로드함[*.auto.tfvars 파일] - 파일 이름의 패턴이 *.auto.tfvars 인 파일들을 자동으로 읽고 로딩
- 파일명에 따라 우선순위가 결정
a.auto.tfvars
b.auto.tfvars
위와 같이 두개의 파일이 존재할 경우, a가 먼저 로드되고, b가 덮어쓰는 방식[*.auto.tfvars.json 파일] - *.auto.tfvars가 JSON 형식으로 작성된 형식
- *.auto.tfvars와 같이 파일명에 따라 우선순위가 결정됨다음글이전글이전 글이 없습니다.댓글
스킨 업데이트 안내
현재 이용하고 계신 스킨의 버전보다 더 높은 최신 버전이 감지 되었습니다. 최신버전 스킨 파일을 다운로드 받을 수 있는 페이지로 이동하시겠습니까?
("아니오" 를 선택할 시 30일 동안 최신 버전이 감지되어도 모달 창이 표시되지 않습니다.)