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

GCP Cloud SQL实例Terraform创建超时,状态停滞于RUNNING

解决方案

1. 先将已创建的实例导入Terraform状态

由于实例已在GCP中存在但未被Terraform追踪,首先需要手动同步状态:

  • 获取实例的完整ID,格式为 projects/<你的项目ID>/instances/<实例名称>:
    • 可通过GCP控制台的SQL实例页面查看实例名,或执行gcloud命令:
      gcloud sql instances list --project <你的GCP项目ID>
      
  • 执行Terraform导入命令:
    terraform import module.postgresql-db.google_sql_database_instance.default projects/<你的项目ID>/instances/<实例名称>
    
  • 导入完成后,执行 terraform plan 验证状态同步情况,此时不会再提示"实例已存在",后续的数据库用户、数据库创建操作也能正常执行。

2. 延长创建超时时间解决根源问题

Terraform超时是因为默认15分钟的创建超时不足以等待实例完全进入DONE状态,在模块配置中增加超时参数:
修改你的模块配置,添加create_timeout参数延长至30分钟:

module "postgresql-db" {
  source               = "GoogleCloudPlatform/sql-db/google//modules/postgresql"
  version              = "8.0.0"
  name                 = var.environment
  random_instance_name = true
  database_version     = "POSTGRES_14"
  project_id           = var.gcp_project
  zone                 = var.gcp_zone
  region               = var.gcp_region
  tier                 = "db-f1-micro"
  db_name              = "yeo"

  deletion_protection = false
  
  # 延长创建超时时间到30分钟
  create_timeout = "30m"

  ip_configuration = {
    ipv4_enabled = true
    require_ssl  = false
    authorized_networks = [{
      name  = "public"
      value = "0.0.0.0/0"
    }]
  }
}

后续创建实例时,Terraform会等待更长时间,确保GCP完成实例所有后台初始化操作,状态能顺利更新为DONE并纳入Terraform管理。

额外排查点

  • 查看GCP SQL实例的操作日志,确认是否有长时间运行的后台任务(如自动备份初始化、磁盘配置等)导致状态无法快速转为DONE
  • 检查模块默认的availability_type参数,若为REGIONAL(多区域高可用),实例初始化时间会比ZONAL更长,可根据需求调整为ZONAL(在模块中添加availability_type = "ZONAL")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 03:15:43