base64gzip 함수 레퍼런스

base64gzip 함수 레퍼런스

base64gzip 함수는 HCL 문자열을 gzip으로 압축한 다음, Base64 인코딩을 적용해주는 함수예요.

출처: 문서

본문

base64gzip을 사용하면 HCL 문자열을 압축하고 Base64 형식으로 인코딩할 수 있어요. 테라폼은 RFC 4648에 정의된 표준 Base64 알파벳을 사용해요.

HashiCorp는 HCL에서 크고 복잡한(raw) 이진 데이터를 다루는 것을 권장하지 않지만, 파일로 참조하는 대신 값으로서 전달해야 하는 작은 이진 객체를 메모리 안에서 표현할 때는 Base64 인코딩이 효과적인 방법이 될 수 있어요. 예를 들어 base64gzip으로 큰 JSON 문자열을 압축해서 S3에 업로드할 수 있어요.

HCL 문자열은 바이트가 아니라 유니코드 문자들의 시퀀스이기 때문에, base64gzip은 먼저 문자열의 문자들을 UTF-8로 인코딩해요. 그 다음 gzip 압축을 적용하고, 마지막으로 Base64 형식으로 인코딩해요.

문법

base64gzip 함수는 다음과 같은 문법으로 사용해요.

base64gzip(ARGS)

인자는 압축하고 인코딩하려는 문자열이에요. 다음 예제에서는 local.my_data에 있는 문자열을 압축하고 Base64 형식으로 인코딩해요.

base64gzip(local.my_data)

활용 예시

다음 예제는 압축하고 인코딩할 문자열을 담은 로컬 값 my_data를 정의해요. base64gzip 함수가 그 문자열을 압축·인코딩하고, 그 결과로 S3 버킷을 채워요.

resource "aws_s3_object" "example" {
  bucket = "my_bucket"
  key = "example.txt"
  content_base64 = base64gzip(local.my_data)
  content_encoding = "gzip"
}

더 알아보기 (Learn more)

  • base64encode — gzip 압축 없이 HCL 문자열에 Base64 인코딩만 적용해요.
  • filebase64 — 로컬 파일시스템에서 파일을 읽어 그 원시 비트를 Base64 형식으로 인코딩해요.