terraform
terraform 반복문(count, for_each)
짱구는굿
2023. 11. 21. 16:25
count
IAM (Identity and Access Management) 사용자를 생성하고, 그들의 Amazon Resource Names (ARNs)을 출력하는 간단한 Terraform 코드입니다
provider "aws" {
region = "ap-northeast-2"
}
resource "aws_iam_user" "user1" {
name = "user-1"
}
resource "aws_iam_user" "user2" {
name = "user-2"
}
resource "aws_iam_user" "user3" {
name = "user-3"
}
output "user_arns" {
value = [
aws_iam_user.user1.arn,
aws_iam_user.user2.arn,
aws_iam_user.user3.arn,
]
}
terraform plan -> 파일 내용 확인 terraform apply -> 파일 실행 |
aws로 확인 |
AWS IAM 사용자를 10개 생성하고 각 사용자의 ARN을 출력하는 예시입니다
provider "aws" {
region = "ap-northeast-2"
}
resource "aws_iam_user" "count" {
count = 10
name = "count-user-${count.index}"
}
output "count_user_arns" {
value = aws_iam_user.count.*.arn
}
terraform plan -> 파일 내용 확인 terraform apply -> 파일 실행 |
aws로 확인 |
for_each
AWS IAM 사용자를 여러 개 생성하고 각 사용자의 ARN을 출력하는 예시입니다
resource "aws_iam_user" "for_each" {
for_each = toset([
"for_each_set_user1",
"for_each_set_user2",
"for_each_set_user3",
])
name = each.key
}
output "for_each_set_arns" {
value = values(aws_iam_user.for_each).*.arn
}
for_each 속성 중 사용자 이름을 나타내는 set 을 사용했다 each.key를 사용하여 사용자 이름이 집합의 각 원소로 지정된다 |
AWS IAM 사용자를 여러 명 생성하고, 각 사용자에 대한 정보 및 태그를 사용하여 출력하는 예시입니다
resource "aws_iam_user" "for_each_map" {
for_each = {
alice = {
level = "low"
manager = "god1"
}
bob = {
level = "mid"
manager = "god2"
}
john = {
level = "high"
manager = "god1"
}
}
name = each.key
tags = each.value
}
output "for_each_map_arns" {
value = values(aws_iam_user.for_each_map).*.arn
}
for_each속성 중 정보 및 태그를 나타내는 map을 사용했다 |