convert 함수
convert 함수 (convert Function)
convert 함수는 첫 번째 인자의 표현식을 평가하고, 그 결과 값을 두 번째 인자의 타입 제약(type constraint)으로 변환해요. 변환이 불가능하면 오류를 반환해요.
출처: 문서
본문
convert 함수는 첫 번째 인자의 표현식을 평가하고, 그 결과 값을 두 번째 인자의 타입 제약으로 변환해요. 변환이 불가능하면 Terraform이 오류를 반환해요. 타입 제약 인자는 variable과 output의 type 파라미터와 같은 타입 표현식을 사용해요. 자세한 내용은 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)
- 타입 제약 (Type Constraints) — 타입 표현식
tostring/tonumber/tobool— 기존 변환 함수- 타입 변환 함수 — 다른 변환 함수