Terraform初始化GCS后端生成空状态文件,apply后仅创建本地状态文件
Terraform GCS远程后端未更新状态文件问题排查
核心问题:混淆了远程后端配置与远程状态数据源
你当前使用的data "terraform_remote_state"是读取其他Terraform配置的远程状态数据的数据源,并非用来配置当前Terraform模块的远程后端存储。当前模块的状态要存到GCS,必须在terraform块中配置后端。
正确的GCS远程后端配置
替换你现有的data块,改用如下配置:
terraform { backend "gcs" { bucket = "project-provisioning-state-5309" prefix = "project_${var.project_name}" } }
修复操作步骤
- 删除本地目录下的
.terraform文件夹和terraform.tfstate文件 - 重新执行
terraform init,此时Terraform会正确关联指定的GCS存储桶作为远程后端 - 再次执行
terraform apply,状态文件会自动同步到GCS存储桶的对应路径下
额外注意事项
- 确保运行Terraform的GCP计算实例拥有操作该GCS存储桶的权限(至少包含
storage.objects.create、storage.objects.get、storage.objects.update权限) - 确认
var.project_name变量已正确赋值,避免prefix路径生成错误
内容的提问来源于stack exchange,提问作者ronin22
相关产品推荐
相关产品推荐

