이번에는 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가 된다.
'AWS > Part 4. Ch02 테라폼을 이용한 인프라 관리' 카테고리의 다른 글
CH02_11. 테라폼 상태 관리 (0) | 2022.06.03 |
---|---|
CH02_10. 테라폼 상태 저장소 (Backend) (0) | 2022.06.03 |
CH02_08. 테라폼 HCL 조건문 (0) | 2022.06.02 |
CH02_07. 테라폼 HCL count와 for_each (0) | 2022.06.02 |
CH02_06. 테라폼 HCL variable & local & output (0) | 2022.06.02 |