mirror of
https://github.com/hashicorp/terraform.git
synced 2026-02-03 20:50:59 -05:00
72 lines
2.1 KiB
Text
72 lines
2.1 KiB
Text
---
|
|
page_title: provider::terraform::encode_expr - Functions - Configuration Language
|
|
description: >-
|
|
The encode_expr function produces a string representation of an arbitrary value
|
|
using Terraform expression syntax.
|
|
---
|
|
|
|
# `provider::terraform::encode_expr` Function
|
|
|
|
-> **Note:** This function is supported only in Terraform v1.8 and later.
|
|
|
|
`provider::terraform::encode_expr` is a rarely-needed function which takes
|
|
any value and produces a string containing Terraform language expression syntax
|
|
approximating that value.
|
|
|
|
To use this function, your module must declare a dependency on the built-in
|
|
`terraform` provider, which contains this function:
|
|
|
|
```hcl
|
|
terraform {
|
|
required_providers {
|
|
terraform = {
|
|
source = "terraform.io/builtin/terraform"
|
|
}
|
|
}
|
|
}
|
|
```
|
|
|
|
The primary use for this function is in conjunction with the `hashicorp/tfe`
|
|
provider's resource type
|
|
[`tfe_variable`](https://registry.terraform.io/providers/hashicorp/tfe/latest/docs/resources/variable),
|
|
which expects variable values to be provided in Terraform expression syntax.
|
|
|
|
For example, the following concisely declares multiple input variables for
|
|
a particular HCP Terraform workspace:
|
|
|
|
```hcl
|
|
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
|
|
}
|
|
```
|
|
|
|
When using this pattern, always set `hcl = true` in the resource declaration
|
|
to ensure that HCP Terraform will expect `value` to be given as Terraform
|
|
expression syntax.
|
|
|
|
We do not recommend using this function in any other situation.
|
|
|
|
~> **Warning:** The exact syntax used to encode certain values may change
|
|
in future versions of Terraform to follow idiomatic style. Avoid using the
|
|
results of this function in any context where such changes might be disruptive
|
|
when upgrading Terraform in future.
|
|
|
|
## Related Functions
|
|
|
|
* [`encode_tfvars`](/terraform/language/functions/terraform-encode_tfvars)
|
|
produces expression strings for many different values at once, in `.tfvars`
|
|
syntax.
|