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

Terraform创建CloudSQL实例报Per-Product Per-Project服务账号不存在

问题根因
  • 报错指向的Per-Product Per-Project Service Account是Cloud SQL服务在项目内的专属服务代理账号(命名格式为service-<项目数字ID>@cloudsql.iam.gserviceaccount.com)。当项目首次启用Cloud SQL API、或者首次创建带私有IP/AD集成配置的MSSQL实例时,GCP后端会异步自动创建这个服务账号,整个预配流程通常需要3-7分钟。
  • 当前使用的google-beta provider版本存在时序逻辑缺陷:发起实例创建请求后,会立即校验该服务代理账号的存在状态,不会主动等待后端完成账号异步预配,一旦预配耗时超过provider默认校验窗口就会直接抛出错误,中断Terraform流程,但后端的实例创建流程实际并未终止,这就是控制台能看到实例大部分配置已经生成的原因。
  • 通过GCP控制台、gcloud CLI手动创建实例时,前端会内置等待服务账号预配的逻辑,不会提前中断流程,因此相同权限下手动操作可以正常完成创建。
排查与解决步骤
  • 第一步:确认服务代理账号状态
    先在GCP项目设置页获取项目对应的数字ID,执行如下gcloud命令查询Cloud SQL服务代理账号是否存在:
    gcloud iam service-accounts list --filter="email:cloudsql.iam.gserviceaccount.com"
    
    如果查询结果为空,说明账号还未完成预配,可手动触发API重初始化,执行后等待3-5分钟再重新查询账号状态:
    gcloud services enable sqladmin.googleapis.com --force
    
  • 第二步:调整Terraform配置规避时序问题
    • 给Cloud SQL实例资源增加显式API依赖,确保SQL Admin API完全就绪、服务代理账号生成后再发起实例创建,可在配置中新增如下资源并绑定依赖:
      resource "google_project_service" "sql_api" {
        project = var.gcp_project
        service = "sqladmin.googleapis.com"
        disable_dependent_services = false
        disable_on_destroy = false
      }
      
      在原有google_sql_database_instance资源块内新增depends_on = [google_project_service.sql_api]配置即可。
    • 拉长google-beta provider的操作超时阈值,给后端预配流程留足时间,provider配置调整示例:
      provider "google-beta" {
        project = var.gcp_project
        region  = var.gcp_region
        timeouts {
          create = "15m"
          update = "15m"
        }
      }
      
    • 如果是项目内首次创建带AD集成的私有IP MSSQL实例,可分两步部署:先创建不带AD配置、仅私有IP的基础实例,等一次apply完成确认服务代理账号正常后,再追加active_directory_config配置块做增量更新,彻底规避首次预配的时序冲突。
  • 第三步:处理残留异常资源
    如果控制台已经能看到创建失败的残留实例,不要直接在控制台手动删除,先执行命令把异常实例从本地Terraform状态中移除:
    terraform state rm google_sql_database_instance.cloud_sql_instance
    
    等确认服务代理账号正常存在后,再重新执行terraform apply发起创建即可,避免本地状态和云端资源不一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 16:18:20