Public Cloud/Terraform

Terraform - for expression

공기반 코딩반 2023. 1. 13. 16:20
반응형

Terraform - for expression

: 반복을 이용해 일괄변환 작업 (expression 타입을 변환, 수정)

- 대문자 변환

variable "fruits_set" {
	type = set(string)
	default = ["APPLE", "BANANA"]
    description = "fruit example"
}

variable "fruits_set" {
	type = set(string)
	default = ["apple", "banana"]
    description = "fruit example"
}

 

 

  count for_each for expression
사용 목적 반복 조회 반복 조회 반복 변환

 

 

리턴 타입

[for item in 'expression': 변환작업] --> 리턴: tuple

{for item in 'expression': 변환작업} --> 리턴: object

 

 

 

조회 방법

ex) terrform console

  • > [for item in var fruits_set: item] --> ERROR( key 값이 없음)
  • > {for key, value in var fruits_set: key => value}  --> 리턴 타입: object

 

  • > [for item in var fruits_list: item]--> 리턴 타입: list 
  • > {for item in var fruits_list: item}--> ERROR( key 값이 없음)
  • > {for key, value in var fruits_listkey => value}  --> 리턴 타입: object  /  키는 index(0, 1, ...)

 

  • > [for item in var fruits_map: item]--> ERROR( key 값이 없음)
  • > {for key, value in var fruits_mapkey => value}  --> 리턴 타입: objec

 

 

for expression을 활용해 s3의 이름을 일괄적으로 수정

ex) 과일이름 --> 과일이름-test로 변경

variable "fruits_set" {
	type = set(string)
	default = ["apple", "banana"]
    description = "fruit example"
}

variable "postfix" {
	type = string
	default = "test"
    description = "postfix"
}

provider "aws"{
	region = "ap-northeast-2"
}

resource "aws_s3_bucket" "mys3bucket"{
	for_each = toset([for fruit in var.fruits_set : format("%s-%s", fruit, var.postfix)])
    bucket = "akbun-t101study-${each.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_each 반복문  (0) 2023.01.13