mirror of
https://github.com/opentffoundation/opentf.git
synced 2026-02-19 07:01:10 -05:00
These were initially introduced as functions with "encode" and "decode" prefixes, but that doesn't match with our existing convention of putting the encoding format first so that the encode and decode functions will group together in a alphabetically-ordered function list. "text" is not really a defined serialization format, but it's a short word that hopefully represents well enough what these functions are aiming to encode and decode, while being consistent with existing functions like jsonencode/jsondecode, yamlencode/yamldecode, etc. The "base64" at the end here is less convincing because there is precedent for that modifier to appear both at the beginning and the end in our existing function names. I chose to put it at the end here because that seems to be our emergent convention for situations where the base64 encoding is a sort of secondary modifier alongside the primary purpose of the function, as we see with "filebase64". (base64gzip is an exception here, but it seems outvoted by the others.)
56 lines
2.2 KiB
Markdown
56 lines
2.2 KiB
Markdown
---
|
|
layout: "functions"
|
|
page_title: "base64encode - Functions - Configuration Language"
|
|
sidebar_current: "docs-funcs-encoding-base64encode"
|
|
description: |-
|
|
The base64encode function applies Base64 encoding to a string.
|
|
---
|
|
|
|
# `base64encode` Function
|
|
|
|
-> **Note:** This page is about Terraform 0.12 and later. For Terraform 0.11 and
|
|
earlier, see
|
|
[0.11 Configuration Language: Interpolation Syntax](../../configuration-0-11/interpolation.html).
|
|
|
|
`base64encode` applies Base64 encoding to a string.
|
|
|
|
Terraform uses the "standard" Base64 alphabet as defined in
|
|
[RFC 4648 section 4](https://tools.ietf.org/html/rfc4648#section-4).
|
|
|
|
Strings in the Terraform language are sequences of unicode characters rather
|
|
than bytes, so this function will first encode the characters from the string
|
|
as UTF-8, and then apply Base64 encoding to the result.
|
|
|
|
The Terraform language applies Unicode normalization to all strings, and so
|
|
passing a string through `base64decode` and then `base64encode` may not yield
|
|
the original result exactly.
|
|
|
|
While we do not recommend manipulating large, raw binary data in the Terraform
|
|
language, Base64 encoding is the standard way to represent arbitrary byte
|
|
sequences, and so resource types that accept or return binary data will use
|
|
Base64 themselves, and so this function exists primarily to allow string
|
|
data to be easily provided to resource types that expect Base64 bytes.
|
|
|
|
`base64encode` is, in effect, a shorthand for calling
|
|
[`textencodebase64`](./textencodebase64.html) with the encoding name set to
|
|
`UTF-8`.
|
|
|
|
## Examples
|
|
|
|
```
|
|
> base64encode("Hello World")
|
|
SGVsbG8gV29ybGQ=
|
|
```
|
|
|
|
## Related Functions
|
|
|
|
* [`base64decode`](./base64decode.html) performs the opposite operation,
|
|
decoding Base64 data and interpreting it as a UTF-8 string.
|
|
* [`textencodebase64`](./textencodebase64.html) is a more general function that
|
|
supports character encodings other than UTF-8.
|
|
* [`base64gzip`](./base64gzip.html) applies gzip compression to a string
|
|
and returns the result with Base64 encoding all in one operation.
|
|
* [`filebase64`](./filebase64.html) reads a file from the local filesystem
|
|
and returns its raw bytes with Base64 encoding, without creating an
|
|
intermediate Unicode string.
|