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

如何通过Terraform配置Cloud SQL MySQL高可用实例辅助可用区

问题结论

当前可以通过Terraform配置Cloud SQL实例的辅助可用区,具体方案取决于你使用的Google Cloud Provider版本:

适配v5.10.0及以上版本的Google Provider

从hashicorp/google v5.10.0版本开始,官方正式在google_sql_database_instance资源的location_preference块下新增了secondary_zone参数,专门用于指定Regional级高可用实例的辅助可用区,配置示例如下:

resource "google_sql_database_instance" "prod" {
  name             = "prod-cloud-sql"
  database_version = "POSTGRES_14"
  region           = "us-central1"

  settings {
    tier              = "db-custom-2-4096"
    availability_type = "REGIONAL" # 高可用实例必须设置为REGIONAL,辅助可用区配置才会生效

    location_preference {
      zone           = "us-central1-a" # 主可用区,对应你之前配置的location参数
      secondary_zone = "us-central1-b" # 自定义指定的辅助可用区
    }
  }
}

配置执行完成后,可以直接在控制台或通过gcloud命令校验辅助可用区是否和你指定的一致。

旧版本Provider(v5.10.0以下)的限制

如果你使用的是低于v5.10.0的Provider版本,没有原生支持辅助可用区的配置参数:

  • 给location_preference.zone(旧版参数名为location)传列表值的方式不可行,该字段在旧版API中仅支持传入单个可用区字符串,用于指定主可用区
  • follow_gae_application参数仅适用于绑定同区域App Engine应用的场景,无GAE应用时使用必然报错,无法用来指定辅助可用区
  • settings.backup_configuration.location是备份存储的区域级配置,仅支持传入多区域标识(如us、eu、asia),和实例的可用区部署逻辑无关
  • 旧版本下创建Regional级实例时,辅助可用区由GCP自动分配,没有官方支持的自定义干预方式,唯一的解决方案是升级Provider版本到v5.10.0以上。

注意:配置时需要保证主、辅助可用区同属实例所在region,且两个可用区不能重复,否则API会直接返回参数错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 17:12:32