Terraform 1.16.0 发布解读:planned private data、模块内 import 与 lifecycle destroy 保护
HashiCorp Terraform 于 2026 年 8 月 26 日发布 1.16.0。本版本集中在 plan/apply 之间的数据保留、import 与资源保护能力上,并新增了 Linux s390x 预编译二进制。
新功能(NEW FEATURES)
计划私有数据(planned private data):Terraform 现在可为 provider 保存计划期私有数据,使 provider 特有的状态能在 plan 与 apply 之间保留;配套地,terraform_data 新增 store 块,可跨 plan/apply 持有 ephemeral 与敏感值。
import 能力扩展:import 块现在可以在模块内使用;同时修复了 import 块对 provider 本地名称的解析。
provider 嵌套块计算值:provider 可将嵌套块作为计算值使用。
Linux s390x(zLinux)支持:Terraform 开始提供 s390x 预编译二进制。
资源动作触发器:on_failure 支持 halt、taint、continue 三种模式。
增强与修复
state show、workspace list支持-json机器可读输出;terraform graph新增-format=mermaid输出 Mermaid 格式依赖图;lifecycle块支持destroy = false,可防止资源被销毁;terraform console支持-scope=<module address>限定求值范围;contains()函数可测试null值,merge()不再因 null 对象 panic;- 测试中设置
skip_cleanup时会报告遗留资源; - Actions 支持
before_destroy/after_destroy事件,且按所有资源依赖顺序触发。
升级注意:bastion_host_key 现在会被 provisioner 正确应用,升级前请核对 provisioner 配置。
适用场景
- 在 plan/apply 间传递敏感或 ephemeral 值的 provider/模块作者可用
store块; - 模块化 import 治理的大型基础设施团队可直接在模块内声明 import;
- 对生产资源增加
destroy = false保护,避免误删。