Terraform 1.10
This overview applies when the project's target Terraform version is at least 1.10.
Ephemeral data
- Ephemeral resources are read during each evaluation phase and are never persisted to plan or state. They produce ephemeral values.
- Input variables and outputs can declare
ephemeral = true. Ephemeral values are permitted only in contexts that do not require persistence. ephemeralasnull(value)preserves ordinary values while replacing ephemeral portions with non-ephemeral null values of compatible types.- Sensitive and ephemeral describe different properties: sensitive values are redacted from normal display, while ephemeral values are omitted from persisted artefacts.
State and backend migration
- The S3 backend supports native state locking. During migration it can acquire both S3-native and DynamoDB locks when both mechanisms are configured.
- Deprecated top-level S3 assume-role attributes are removed; configuration must use the
assume_roleblock. - The
-stateoption onplan,apply, andrefreshis deprecated. The local backend'spathattribute configures an alternate state path.
Expressions and addresses
elementaccepts negative indices, counting backwards from the end of a collection.- Resource types that collide with reserved words in a
movedaddress require an explicitresource.prefix. - Mark propagation through conditional and
forexpressions is stricter, so values can correctly become sensitive where earlier releases lost the mark.