You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Terraform plan、destroy与state文件的关联及运行机制相关技术问询

Terraform 相关问题解答

问题1:terraform plan的状态比对逻辑

  • terraform plan默认会同时读取state文件、调用azurerm API拉取云侧资源实时状态,再和配置文件定义的期望状态做三方比对,不是只依赖其中某一个。
  • 执行plan时默认开启-refresh=true参数,第一步会先调用Azure API拉取所有当前state中记录的托管资源的实时状态,更新state的临时缓存,再和配置文件的期望状态对比,最终生成变更计划。如果期间你手动在Azure门户修改过资源属性,plan也能识别到和state记录不一致的地方,体现在变更计划里。

问题2:首次执行plan无state文件的校验逻辑

  • 首次执行plan还没有生成state文件时,Terraform会判定配置中定义的所有资源都还未被纳入托管,此时会直接生成创建所有配置中定义资源的变更计划。
  • 如果你配置中定义的资源已经提前在Azure中手动创建好了,Terraform此时也不会识别到云侧的已有资源,依旧会提示要创建新的同名资源,只有你提前将现有资源通过terraform import命令导入到state中后,才会正常比对已有资源的配置差异。

问题3:terraform destroy的依赖逻辑

  • 执行terraform destroy时不会参考你编写的期望配置文件,只以state文件中记录的所有Terraform托管资源列表为依据。
  • 执行时会先调用Azure API校验state中记录的资源是否还在云侧实际存在,确认存在后就会生成销毁这些资源的计划,哪怕你当前目录下的配置文件已经被删除、修改,也不会影响destroy的执行逻辑。

内容的提问来源于stack exchange,提问作者Vowneee

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 07:06:03