Public Cloud/Terraform

Terraform - for_each 반복문

공기반 코딩반 2023. 1. 13. 15:35
반응형

for_each

: 반복을 할 때 인덱스가 아닌 each object로 접근하는 방법

- map, set만 for_each 사용 가능함

- for_each를 사용하려면 타입 변환이 필요함

 

 

 

list vs each object

list

variable "sample" {
	type = list(string)
	default = ["aaa", "bbb", "ccc"]
}

- IAM user 생성

resource "aws_iam_user" "count" {
	count = length(var.user_names)
	name = var.user_names[count.index]
}

- for_each를 이용해 IAM 생성할 경우

resource "aws_iam_user" "for_each_set" {
	for_each = toset(var.user_names)
	name = each.key
}

--> sample에서 리스트 값 순서 바뀌어도 업데이트 할 때 error 안생김.

 

 

 

 


 

 

map (키: 값)

variable "sample" {
	type = map(string)
	default = {"aaa": "aaa", "bbb": "bbb", "ccc": "ccc"}
}

> var.sample["bbb"]      -->   "bbb"

 

 

 

- terraform apply를 실행하면 count와 달리 key로 접근하여 생성하는 것을 알 수 있다.

 

반응형

'Public Cloud > Terraform' 카테고리의 다른 글

.gitlab-ci.yml  (0) 2023.02.01
Terraform이란  (0) 2023.01.13
Terraform - 중앙 집중식 비밀 저장소  (0) 2023.01.13
Terraform - 민감정보 보안 / Provider Block / OIDC  (0) 2023.01.13
Terraform - for expression  (0) 2023.01.13