2026西湖龙井茶官网DTC发售:茶农直供,政府溯源防伪到农户家
2025年11月19日,哈希公司(HashiCorp)发布了 Terraform v1.14.0 版本,并于2026年4月20日推出了 v1.14.9 补丁版本,修复了堆栈(Stacks)插件安装中的一个错误。这次小版本更新不仅仅是功能升级——它打破了长达五年的基础设施即代码(IaC)共识,即“声明式加单向配置已足够”。两个新的基本构件促成了这一突破。首先,资源列表(List Resources)(一种新的 *.tfquery.hcl 文件类型加上 terraform query 命令)让你能够从代码库之外发现、筛选并批量导入云中已存在的资源。其次,动作块(Actions Block) 和 -invoke 命令行标志允许你以声明式的方式将强制性副作用——如 Lambda 函数调用、CloudFront 缓存失效、Ansible 剧本——附加到资源生命周期中。本文是对 Terraform 1.14 的生产导向型指南,包含 HCL 示例、操作场景以及与 OpenTofu 的对比。
1. 为什么 Terraform 1.14 至关重要——基础设施即代码的转折点
云原生计算基金会(CNCF)2026年第一季度的数据显示,Terraform 仍占据 71% 的云基础设施即代码工具市场份额,而 OpenTofu 正在迅速追赶。在这种环境下,1.14 版本的两项变更最终将两个长期外包的工作流程整合到了核心中。
| 长期存在的痛点 | 1.13 版本之前的变通方案 | 1.14 版本的解决方案 | 运维收益 |
|---|---|---|---|
| 现有资源的批量发现/导入 | aws-cli + 自定义脚本 + 手写的 import 块 |
资源列表 + terraform query -generate-config-out |
通过一条命令发现、筛选并生成 HCL 代码 |
| 部署后的 Lambda 预热、CloudFront 缓存失效、Slack 警报 |
local-exec + null_resource + GitHub Actions 后置步骤 |
action_trigger { events = [after_create] } |
副作用在计划(plan)/应用(apply)阶段可见 |
| 一次性秘密信息(密码、令牌) | 状态文件中存在明文的风险 | (1.11) 临时资源 + 只写属性,在 1.14 中稳定化 | 一次性值不会污染状态文件 |
| 拆分大型模块依赖图 |
terragrunt run-all + 目录分片 |
HCP Terraform 堆栈(Stacks),插件错误在 1.14.9 中修复 | 按组件进行部署/回滚 |
| 模块被未知值阻塞 | 多步骤应用 | (实验性)延迟动作,计划在 1.16 中推出 | 为带有未知值的 count/for_each 提供路径 |
关键洞察:1.14 版本同时从两个方向打破了 Terraform “仅管理其所知内容”的限制。资源列表将外部资源引入;动作将内部意图向外推送。基础设施即代码与自动化脚本之间的界限刚刚缩小。
2. 资源列表——.tfquery.hcl 和 terraform query
资源列表存在于单独的 .tfquery.hcl 文件中,原因很明确:它们是一个只读发现图,绝不能与普通计划图混合。terraform query 命令评估当前目录中的 .tfquery.hcl 文件,调用云应用程序接口(API),并将结果打印到控制台,或者——使用 -generate-config-out 时——将 import 和 resource 块输出到新文件中。
# find-unmanaged.tfquery.hcl
# 查找运行中
免责声明:本文内容来自互联网,该文观点不代表本站观点。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,请到页面底部单击反馈,一经查实,本站将立刻删除。