Ssoon
[5주차] 05 테라폼의 팁과 요령 (1) 반복문 - for expressions 본문
CloudNet@ 팀의 가시다님이 진행하는 Terraform 101 Study 05주차 정리입니다.
✅ 단일 값을 생성하기 위해 반복이 필요한 경우
[ for <ITEM> in <LIST> : <OUTPUT> ]
- LIST : 반복할 list
- ITEM : LIST 의 각 항목에 할당할 로컬 변수의 이름
- OUTPUT : ITEM 을 어떤 식으로든 변환하는 expression(표현식)
✅ var.names 의 이름 목록을 대문자로 변환하는 테라폼 코드입니다.
for name in var.names : upper(name)
⛔ live/global/for-expressions/main.tf
variable "names" {
description = "A list of names"
type = list(string)
default = ["apeach", "chun-sik", "ryan"]
}
output "upper_roles" {
value = [ for name in var.names : upper(name) ]
}
📢 CLI 확인
✅ 조건을 지정하여 결과 list를 필터링할 수 있습니다.
for name in var.names : upper(name) if length(name) < 5
⛔ live/global/for-expressions/main.tf
output "short_upper_names" {
value = [for name in var.names : upper(name) if length(name) < 5]
}
📢 CLI 확인
✅ 다음과 같은 구문으로 map 을 반복할 수 있습니다.
[ for <KEY>, <VALUE> in <MAP> : <OUTPUT> ]
- MAP : 반복되는 map
- KEY & VALUE : map 의 각 키-값의 쌍을 할당할 로컬 변수의 이름
- OUTPUT : key 와 value 를 어떤 식으로든 변환하는 expression(표현식)
for name, role in var.Kakao_Friends : "${name} is the ${role}"
⛔ live/global/for-expressions/main.tf
variable "hero_thousand_faces" {
description = "map"
type = map(string)
default = {
apeach = "hero"
chun-sik = "love interest"
ryan = "mentor"
}
}
output "bios" {
value = [for name, role in var.Kakao_Friends : "${name} is the ${role}"]
}
📢 CLI 확인
✅ for 표현식을 list 가 아닌 map 을 출력하는 데 사용할 수 있습니다.
✔ list 을 반복하고 map 을 출력
[ for <ITEM> in <LIST> : <OUTPUT_KEY> => <OUTPUT_VALUE> ]
✔ map 을 반복하고 list 를 출력
{ for <KEY>, <VALUE> in <MAP> : <OUTPUT_KEY> => <OUTPUT_VALUE> }
✅ map 을 변환하여 모든 key 와 value 을 대문자로 만드는 방법입니다.
👉 식을 대괄호 개신 중괄호로
👉 각 반복마다 단일 값을 출력하는 대신 key 와 vaule 을 화살표로 구분하여 출력
⛔ live/global/for-expressions/main.tf
output "upper_roles" {
value = {for name, role in var.Kakao_Friends : upper(name) => upper(role)}
}
📢 CLI 확인
'Terraform 101 Study' 카테고리의 다른 글
[5주차] 05 테라폼의 팁과 요령 (2) 조건문 - count (0) | 2022.11.19 |
---|---|
[5주차] 05 테라폼의 팁과 요령 (1) 반복문 - String Directive (0) | 2022.11.17 |
[5주차] 05 테라폼의 팁과 요령 (1) 반복문 - for_each (0) | 2022.11.15 |
[5주차] 05 테라폼의 팁과 요령 (1) 반복문 - count (0) | 2022.11.14 |
[T101-4주차] 04 테라폼 모듈로 재사용 가능한 인프라 생성하기 - (5) 모듈주의사항 (0) | 2022.11.13 |
Comments