Terraform 1.14 发布:用 *.tfquery.hcl 查询存量资源,新增顶层 Actions block
版本:v1.14.0(2025-11-19)。Release notes 与完整 CHANGELOG:
- https://github.com/hashicorp/terraform/releases/tag/v1.14.0
- https://github.com/hashicorp/terraform/blob/v1.14/CHANGELOG.md
List Resources 与 terraform query
List Resources 可以在 *.tfquery.hcl 文件中定义,用于查询和过滤既有基础设施。这是把"已存在的资源"作为一等查询对象,而不是先写配置再 import。
配套新增命令 terraform query:对既有基础设施执行 list 操作并输出结果。该命令可选地生成配置,把查询结果导入 Terraform 管理。
导入时生成更精确的配置值
新增 GenerateResourceConfiguration RPC,让 provider 在 import 过程中生成更精确的配置值(#37515)。
顶层 Actions block
新增顶层 action block。Actions 由 provider 定义,用来表达正常 CRUD 模型之外的用例。provider 可以定义诸如 aws_lambda_invoke、aws_cloudfront_create_invalidation 这类在 Terraform 正常 CRUD 之外执行命令式操作的 action。配置方式是用 action block 声明这种副作用,触发途径有两种:挂在资源的生命周期上,或通过 -invoke CLI flag 触发(#37553)。
其他增强
terraform test:verbose 模式下,预期诊断(expected diagnostics)会包含在测试输出中(#37362)。terraform test:清理测试时忽略prevent_destroy属性(#37364)。terraform stacks命令支持-helpflag(#37645)。query:validate命令通过-queryflag 支持对 query 文件的离线校验(#37671)。- 支持 AWS European Sovereign Cloud(#37721)。
- CLI 现在会汇总
terraform apply期间调用的 action 数量,与 plan 输出保持一致(#37689)。
Bug 修复
terraform import时检索所有 workspace 变量,包含从 variable sets 继承、但未被 workspace 覆盖的变量(#37241)。- 修复 OSS backend proxy 支持(#36897)。
query:为展开后的 list resources 结果生成唯一的资源标识符(#37681)。query:改进 identity schema 缺失时的错误处理(#37863)。
升级注意
- 容器运行时中 Terraform 操作的并行度可能降低,具体取决于 CPU bandwidth limit 设置(#37436)。
- 构建 Terraform 1.14 需要 macOS Monterey 或更高版本,原因是用 Go 1.25 构建(#37436)。
实验特性(仅 alpha)
- 通过
-allow-deferral实现 deferred actions,允许 module/resource/data block 中的count/for_each取未知值。 terraform test cleanup命令。- Terraform Test 文件
runblock 内的 backend blocks 与skip_cleanup属性。