provider::terraform::encode_expr 함수
provider::terraform::encode_expr 함수
provider::terraform::encode_expr는 어떤 값이든 받아 그 값을 근사하는 Terraform 언어 표현식 문법의 문자열을 만들어 주는 함수예요. 잘 쓰이지는 않지만, 주로 hashicorp/tfe 프로바이더의 tfe_variable 리소스와 함께 사용해 변수 값을 Terraform 표현식 문법으로 전달할 때 유용해요. Terraform v1.8 이상에서만 지원돼요.
출처: 문서
본문
참고: 이 함수는 Terraform v1.8 이상에서만 지원돼요.
provider::terraform::encode_expr은 거의 필요하지 않은 함수로, 어떤 값이든 받아 그 값을 근사하는 Terraform 언어 표현식 문법을 포함한 문자열을 만들어요. 이 함수를 사용하려면 모듈에서 이 함수를 포함하는 내장 terraform 프로바이더에 대한 의존성을 선언해야 해요.
terraform {
required_providers {
terraform = {
source = "terraform.io/builtin/terraform"
}
}
}
이 함수의 주요 용도는 hashicorp/tfe 프로바이더의 리소스 타입 tfe_variable과 함께 쓰는 것이에요. 이 리소스는 변수 값이 Terraform 표현식 문법으로 제공되기를 기대해요. 예를 들어, 다음은 특정 HCP Terraform 워크스페이스의 여러 입력 변수를 간결하게 선언해요.
locals {
workspace_vars = {
example1 = "Hello"
example2 = ["A", "B"]
}
}
resource "tfe_variable" "test" {
for_each = local.workspace_vars
category = "terraform"
workspace_id = tfe_workspace.example.id
key = each.key
value = provider::terraform::encode_expr(each.value)
hcl = true
}
이 패턴을 사용할 때는 리소스 선언에서 항상 hcl = true로 설정해서 HCP Terraform이 value를 Terraform 표현식 문법으로 제공될 것이라고 예상하도록 해야 해요.
그 밖의 상황에서는 이 함수를 사용하지 않는 것을 권장해요.
경고: 특정 값을 인코딩하는 정확한 문법은 Terraform의 향후 버전에서 관용적인 스타일을 따르기 위해 바뀔 수 있어요. 향후 Terraform을 업그레이드할 때 이런 변경이 방해가 될 수 있는 컨텍스트에서는 이 함수의 결과를 사용하지 않는 것이 좋아요.
관련 함수 (Related Functions)
encode_tfvars는.tfvars문법으로 여러 다른 값을 한 번에 표현하는 문자열을 만들어요.
더 알아보기 (Learn more)
encode_tfvars함수 —.tfvars문법으로 여러 값 인코딩terraform프로바이더 문서 — 내장 프로바이더tfe_variable리소스 문서 — HCP Terraform 변수