Terraform执行tf state show报instance_group_urls属性不支持错误原因查询
错误根因分析
- Google Provider 4.0 版本破坏性变更:HashiCorp 官方在 google provider 4.0.0 版本正式移除了
google_container_cluster资源下的废弃属性instance_group_urls,该属性迁移至node_pools[*].instance_group_urls节点池级属性下。你当前本地使用的 provider 4.0 版本的资源 schema 中已无该字段定义,因此执行terraform state show做 schema 校验时会抛出不支持属性的错误。 - 状态文件残留旧版本属性:该集群资源最早是使用 3.x 版本的 google provider 创建/更新的,state 文件中仍保留了旧版本 provider 写入的
instance_group_urls属性值,你升级 provider 版本后没有同步刷新状态文件,导致 state 结构和当前 provider schema 不匹配。 - 补充:
terraform state list只读取状态文件中的资源标识,不会做属性和 schema 的校验,所以可以正常输出结果。
修复方案
- 如果你需要临时查看资源状态,可先将 google/google-beta provider 版本回退到 3.x 系列的最终稳定版(如 3.90.1),即可正常执行
terraform state show命令。 - 如果你要继续使用 4.0 版本 provider,执行
terraform apply -refresh-only命令刷新状态文件,自动清理 state 中残留的旧版废弃属性,操作完成后即可正常查看资源状态。 - 禁止直接手动修改 tfstate 文件,避免状态文件损坏导致资源托管异常。
内容的提问来源于stack exchange,提问作者Jason Stanley
相关产品推荐
相关产品推荐

