GitHub Actions执行Terraform时遇‘unsupported checkable object kind "var"’错误
解决GitHub Actions中Terraform Init报错"unsupported checkable object kind 'var'"
问题详情
执行GitHub Actions中的Terraform初始化步骤时出现以下错误:
Terraform Init Run terraform init Initializing the backend... Successfully configured the backend "s3"! Terraform will automatically use this backend unless the backend configuration changes. Error refreshing state: unsupported checkable object kind "var" Error: Terraform exited with code 1. Error: Process completed with exit code 1.
已确认所有变量均已赋值,当前使用的github-actions.yml配置如下:
on: push: branches: [develop] pull_request: branches: [main, develop] env: AWS_REGION: us-west-2 TF_VERSION: 1.5.0
排查与解决方法
- 检查后端状态文件:该错误多由S3存储的.tfstate文件中存在非法对象类型导致。本地拉取状态文件,打开后查找是否有
"kind": "var"的条目,若存在则手动移除或重新生成合法的状态文件再推回S3。 - 升级Terraform版本:当前指定的1.5.0版本可能不兼容现有状态文件格式。将
TF_VERSION改为最新稳定版(如1.6.6),重新触发Actions运行。 - 核对配置文件中的状态引用:检查所有.tf配置文件,确认没有在状态相关块(如
data "terraform_remote_state")中错误地将变量(var.xxx)作为检查对象。 - 强制重新配置后端:本地执行
terraform init -reconfigure,强制重新初始化后端并同步状态,完成后将更新后的状态推送至S3,再触发Actions。
内容的提问来源于stack exchange,提问作者Promise Preston
相关产品推荐
相关产品推荐

