provider::terraform::encode_tfvars 함수
provider::terraform::encode_tfvars 함수
provider::terraform::encode_tfvars는 객체 값을 받아서 그 객체를 .tfvars 파일에서 테라폼 CLI가 기대하는 것과 동일한 문법으로 표현한 문자열을 만들어주는 함수예요. 거의 쓸 일이 없는 함수예요.
출처: 문서
본문
참고: 이 함수는 테라폼 v1.8 이상에서만 지원돼요.
대부분의 경우 테라폼 구성 간에 데이터를 전달할 때는 생성된 .tfvars 파일을 디스크에 쓰는 것보다 Data Sources를 사용하는 게 더 좋아요. 이 함수는 최후의 수단으로만 사용하세요.
이 함수를 사용하려면 모듈이 이 함수를 담고 있는 내장 terraform 프로바이더에 대한 의존성을 선언해야 해요.
terraform {
required_providers {
terraform = {
source = "terraform.io/builtin/terraform"
}
}
}
그런 뒤 모듈의 다른 곳에서 이 함수를 호출할 수 있어요.
provider::terraform::encode_tfvars({
example = "Hello!"
})
위 호출은 다음과 같은 결과를 만들어요.
example = "Hello!"
.tfvars 형식의 요구사항 때문에, 주어진 객체의 모든 속성은 입력 변수 선언에서 허용되는 것처럼 유효한 테라폼 변수 이름이어야 해요.
.tfvars 형식은 테라폼 전용이라서 일반적인 직렬화 형식으로는 권장하지 않아요. 다른 소프트웨어도 지원하는 형식을 생성하려면 jsonencode나 yamlencode를 사용하세요.
경고: 특정 값을 인코딩할 때 사용하는 정확한 문법은 향후 테라폼 버전에서 관용적인(idiomatic) 스타일을 따르도록 바뀔 수 있어요. 이 함수의 결과를, 향후 테라폼 업그레이드 시 문제가 될 수 있는 문맥에서는 사용하지 마세요.
더 알아보기 (Learn more)
decode_tfvars— 반대 작업을 수행해서,.tfvars내용을 파싱해 그 안에 선언된 변수 값들을 얻어요.encode_expr—.tfvars컨테이너 없이 값을 단순 표현식 하나로 인코딩해요.