iam user를 3개를 만드는 반복문을 작성하고 싶음
count
: 테라폼의 가장 오래되고 단순하며 제한된 반복 구조
${count.index}
로 0,1,2..를 얻을 수 있음resource "aws_iam_user" "example" {
count = 3
name = "neo.${count.index}"
}
한 번에 neo.0, neo.1, neo.2의 iam user를 생성할 수 있음
index를 이용하기 위해 terraform의 입력변수의 type을 list(string)
으로 놓고 default값을 이용해 배열을 생성할 수 있음
variable "user_names" {
description = "Create IAM users with these names"
type = list(string)
default = ["neo", "trinity", "morpheus"]
}
index를 이용
resource "aws_iam_user" "example" {
count = length(var.user_names) # 3으로 하드코딩 안해도 됨
name = "neo.${count.index}"
}
resource에 count
를 사용한 후에는 하나의 리소스가 아니라 리소스의 배열이 된다. ⇒ example은 IAM user의 배열
그래서 출력변수로 IAM User의 ARN을 출력하고 싶으면
<PROVIDER>_<TYPE>.<NAME>**[INDEX]**.ATTRIBUTE
를 사용해 배열의 index를 명시해야 한다