-
terraform 반복문(count, for_each)terraform 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을 사용했다 'terraform' 카테고리의 다른 글
terraform (vpc, subnet, nat_gateway, route table) (0) 2023.11.23 terraform (backend) (0) 2023.11.22 terraform (remote state) (0) 2023.11.21 terraform 인스턴스 생성 (0) 2023.11.21