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을 업그레이드할 때 이런 변경이 방해가 될 수 있는 컨텍스트에서는 이 함수의 결과를 사용하지 않는 것이 좋아요.

  • encode_tfvars.tfvars 문법으로 여러 다른 값을 한 번에 표현하는 문자열을 만들어요.

더 알아보기 (Learn more)