DevOps/Terraform

[Terraform] 테라폼 내장함수 사용하기

Jflip 2024. 6. 29. 22:29
728x90

 

안녕하세요, 이번 포스팅은 테라폼 내장 함수에 대해서 포스팅을 올립니다.

테라폼으로 시작하는 IaC’를 기준으로 내용 정리하였으며, CloudNet@의 테라폼 스터디 내용을 기반으로 하고 있습니다.

설명

테라폼(Terraform)은 인프라를 코드로 관리할 수 있게 해주는 도구로, 다양한 내장 함수를 제공하여 코드에서 값의 유형을 조작하고 조합할 수 있습니다. 테라폼의 함수들은 프로그래밍 언어적 특성을 가지고 있어, 숫자, 문자열, 컬렉션, 파일 시스템 등 다양한 유형의 작업을 지원합니다.

 

내장 함수 외에는 사용자가 직접 정의한 함수를 지원하지 않으며, 테라폼 코드에서는 변수, 리소스 속성, 데이터 소스 속성, 출력 값 등을 효과적으로 다룰 수 있습니다. 이를 통해 코드를 동적으로 작성하고 관리할 수 있습니다.

 

1. Length 함수

length 함수는 주어진 목록, 문자열, 맵 등의 길이를 반환합니다.

예를 들어, 목록의 요소 수, 문자열의 문자 수, 맵의 키-값 쌍의 수를 반환합니다.

 

코드

variable "example_list" {
  default = ["a", "b", "c"]
}

output "list_length" {
  value = length(var.example_list)
}

 

코드 실행 화면

 

2. concat 함수

concat 함수는 여러 목록을 하나의 목록으로 합칩니다.

 

코드

variable "list1" {
  default = ["a", "b"]
}

variable "list2" {
  default = ["c", "d"]
}

output "combined_list" {
  value = concat(var.list1, var.list2)
}

 

코드 실행 화면

 

3. coalesce 함수

coalesce 함수는 인수 중 첫 번째 null이 아닌 값을 반환합니다.

 

코드

variable "val1" {
  default = null
}

variable "val2" {
  default = "default_value"
}

output "first_non_null_value" {
  value = coalesce(var.val1, var.val2, "fallback_value")
}

 

코드 실행 화면

 

또한 이외에도 cidrsubnet, cidrsubnets 함수가 있으며, 이전 포스팅을 참고하시기 바랍니다.
https://jflip.tistory.com/115

 

[Terraform] cidrsubnet, cidrsubnets 함수

안녕하세요, 오늘은 테라폼 cidrsubnet, cidrsubnets에 대해서 정리한 내용을 가지고 포스팅합니다.‘테라폼으로 시작하는 IaC’를 기준으로 내용 정리하였으며, Cloudnet의 테라폼 스터디 내용을 기반으

jflip.tistory.com

 

728x90
반응형