본문 바로가기
AWS/Part 4. Ch02 테라폼을 이용한 인프라 관리

CH02_09. 테라폼 HCL 반복문(For)

by Engineer-Lee 2022. 6. 2.
반응형

이번에는 for문에 대해 알아보자

https://www.terraform.io/language/expressions/for

 

For Expressions - Configuration Language | Terraform by HashiCorp

For expressions transform complex input values into complex output values. Learn how to filter inputs and how to group results.

www.terraform.io

for문은 expression을 활용 가능한 모든 곳에서 사용할 수 있다.

 

첫 번째 예시를 보면

var.map이 {{"abc" = "a"}, {"abcd" = "efg"}} 이라고 한다면

"abc"와 "abcd"가 key이므로 k가 되고 "a"와 "efg"가 value로 v가 된다.

따라서 [4, 7]의 결과가 된다.

 

두 번째 예시를 보면

여기서 i는 인덱스로 0부터 시작하고

v는 [3, 4, 5, 6]의 리스트라고 한다면 결과는

["0 is 3", "1 is 4" , "2 is 5" , "3 is 6"]  이 된다.

 

 

세 번째 예시를 보면

s는 key이고 "=>" 다음의 upper(s)는 value가 된다.

만약 var.llist가 ["foo", "bar", "baz"] 라면 결과는 아래와 같다.

 

 

for문에서는 조건문도 활용할 수 있다.

만약 var.list가 [ "a","", "b", "" ] 으로 빈 문자열을 포함하고 있다면 결과는

[ "A", "B"] 가 될 것이다.

 

 

이제 실습코드를 보자

https://github.com/tedilabs/fastcampus-devops/blob/main/2-terraform/08-for/main.tf

 

GitHub - tedilabs/fastcampus-devops: 🚀 패스트캠퍼스 데브옵스 초격차 코스 자료

🚀 패스트캠퍼스 데브옵스 초격차 코스 자료. Contribute to tedilabs/fastcampus-devops development by creating an account on GitHub.

github.com

 

developer와 employee라는 두개의 IAM그룹을 만들었고

 

 

users를 변수로 대입하고 대입된 값을 aws IAM 사용자로 만들고 있다.

for_each문으로 map안에서 for문을 사용하고 있는데 user.name은 key이고 전체 유저 정보인 user는 value가 된다.

 

반응형