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

如何通过Terraform在GCP默认网络部署带私有IP的PostgreSQL实例

使用Terraform在GCP默认网络部署私有IP PostgreSQL实例

关键问题修正与配置调整

你的配置主要存在3个问题:默认网络名称错误、布尔参数格式错误、重复创建服务对等连接导致报错,以下是修正后的完整配置:

# 读取已存在的默认网络
data "google_compute_network" "default" {
  name = "default" # 若你的默认网络有自定义名称,请修改此处
}

# 预留用于VPC对等连接的IP段(仅当未预留过时需要)
resource "google_compute_global_address" "private_ip_address" {
  name          = "private-ip-address"
  purpose       = "VPC_PEERING"
  address_type  = "INTERNAL"
  prefix_length = 16
  network       = data.google_compute_network.default.id
}

# 建立与服务网络的对等连接,避免重复创建报错
resource "google_service_networking_connection" "private_vpc_connection" {
  network                 = data.google_compute_network.default.id
  service                 = "servicenetworking.googleapis.com"
  reserved_peering_ranges = [google_compute_global_address.private_ip_address.name]

  # 防止Terraform修改/销毁已存在的对等连接
  lifecycle {
    ignore_changes = [network, service]
    prevent_destroy = true
  }
}

resource "google_sql_database_instance" "main" {
  name             = "test-db"
  database_version = "POSTGRES_12"
  region           = "us-west1"
  
  # 确保对等连接建立完成后再创建数据库
  depends_on = [google_service_networking_connection.private_vpc_connection] 

  settings {
    availability_type = "REGIONAL"
    tier              = "db-custom-2-8192"
    disk_size         = 10
    disk_type         = "PD_SSD"
    disk_autoresize   = true # 布尔类型参数无需引号
    ip_configuration {
      ipv4_enabled    = false # 禁用公网IP,布尔类型参数无需引号
      private_network = data.google_compute_network.default.id
    }
  }
}

核心修正说明

  1. 网络名称修正:GCP默认网络的默认名称为default,若你的环境中默认网络有自定义名称,再修改data.google_compute_network.default的name字段。
  2. 参数格式修正:disk_autoresize、ipv4_enabled为布尔类型参数,不能用字符串引号包裹,否则会触发配置错误。
  3. 服务连接生命周期控制:添加lifecycle规则,避免Terraform尝试修改或销毁已存在的服务对等连接,解决"默认网络已存在"的报错问题。
  4. 资源创建顺序:保留depends_on确保服务对等连接完全建立后再创建数据库实例,避免因资源依赖顺序问题导致的部署失败。

内容的提问来源于stack exchange,提问作者Matt - Block-Farms.io

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 13:03:25