Terraform 1.14 — 列表资源(.tfquery.hcl)、操作块和 `terraform query` 的完整指南:基础设施即代码五年来的首次范式转变

发布日期:2026-04-22 09:19:55   浏览量 :5
发布日期:2026-04-22 09:19:55  
5

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.hclterraform query

资源列表存在于单独的 .tfquery.hcl 文件中,原因很明确:它们是一个只读发现图,绝不能与普通计划图混合。terraform query 命令评估当前目录中的 .tfquery.hcl 文件,调用云应用程序接口(API),并将结果打印到控制台,或者——使用 -generate-config-out 时——将 importresource 块输出到新文件中。

# find-unmanaged.tfquery.hcl
# 查找运行中

免责声明:本文内容来自互联网,该文观点不代表本站观点。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,请到页面底部单击反馈,一经查实,本站将立刻删除。

关于我们
热门推荐
合作伙伴
免责声明:本站部分资讯来源于网络,如有侵权请及时联系客服,我们将尽快处理
支持 反馈 订阅 数据
回到顶部