Skip to main content

file vs templatefile

Terraform에서 file 함수와 templatefile 함수는 파일을 읽는 데 사용되지만 이 둘 사이에는 중요한 차이가 있습니다.

file 함수

data "file" "example" {
template = file("payload.sh")
}


output "example" {
value = data.file.example.content
}

위의 예시에서 payload.sh의 내용이 출력됩니다.

templatefile 함수

이 함수는 파일의 내용을 읽어들이지만 추가적으로 템플릿 처리를 합니다. 파일 내의 Terraform 템플릿 구문이 처리되어 변수에 값을 삽입할 수 있습니다.

output "rendered" {
value = templatefile("template.txt", {
variable = "value"
})
}

위의 예시에서 template.txt 내의 모든 ${variable} 변수는 value로 대체되며 두 함수의 주요 차이는 템플릿 처리의 유무로 file 함수는 단순히 파일의 내용을 읽고 반환하는 반면, templatefile 함수는 템플릿 처리를 하여 파일 내의 변수를 원하는 값으로 대체할 수 있습니다.