综合 Terraform 1.14 发布:用 *.tfquery.hcl 查询存量资源,新增顶层 Actions block

2026-10-09 21:06:42

Terraform 1.14 发布:用 *.tfquery.hcl 查询存量资源,新增顶层 Actions block

版本:v1.14.0(2025-11-19)。Release notes 与完整 CHANGELOG:

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 命令支持 -help flag(#37645)。
  • query:validate 命令通过 -query flag 支持对 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 文件 run block 内的 backend blocks 与 skip_cleanup 属性。
复制全文 生成海报 Terraform IaC 运维 基础设施

推荐文章

程序员茄子在线接单