convert 함수

convert 함수 (convert Function)

convert 함수는 첫 번째 인자의 표현식을 평가하고, 그 결과 값을 두 번째 인자의 타입 제약(type constraint)으로 변환해요. 변환이 불가능하면 오류를 반환해요.

출처: 문서

본문

convert 함수는 첫 번째 인자의 표현식을 평가하고, 그 결과 값을 두 번째 인자의 타입 제약으로 변환해요. 변환이 불가능하면 Terraform이 오류를 반환해요. 타입 제약 인자는 variableoutputtype 파라미터와 같은 타입 표현식을 사용해요. 자세한 내용은 type constraint 문서를 참고해요.

예시 (Examples)

convert([], list(string))
// converts the empty tuple value to a list(string)
> convert([], list(string))
tolist([])
> convert({test = {}}, map(object({
  attr = optional(string)
  with_default = optional(string, "default")
})))
tomap({
  "test" = {
    "attr" = tostring(null)
    "with_default" = "default"
  }
})

기존 타입 변환 함수들은 호환성을 위해 계속 남아 있고, 해당 convert 호출과 동일하게 동작해요. 컬렉션 타입의 경우 any의 더 모호한 타입 추론 동작을 피하기 위해, convert를 사용해 더 정밀한 타입을 지정할 것을 권장해요.

tostring(v) => convert(v, string)
tonumber(v) => convert(v, number)
tobool(v)   => convert(v, bool)
toset(v)    => convert(v, set(any))
tolist(v)   => convert(v, list(any))
tomap(v)    => convert(v, map(any))

실전 사용 팁

convert는 타입 변환을 한 곳에서 명시적으로 제어하고 싶을 때 유용해요. 특히 컬렉션 타입에서 any의 모호한 타입 추론 대신 정밀한 타입을 지정해 컴파일 시점에 문제를 일찍 잡고 싶을 때 활용해요. 예를 들어 모듈 출력으로 내보낼 값을 convert(value, map(object({...})))처럼 구체적인 타입으로 정규화하면, 다음 단계에서 예상치 못한 타입 때문에 생기는 오류를 줄일 수 있어요.

더 알아보기 (Learn more)