GCP:在特定子网中创建私有 postgre 实例

问题描述 投票:0回答:1

我想创建一个指向我的 VPC 中特定子网的私有 postgresql 实例。我有 2 个资源:

resource "google_compute_global_address" "private_ip_address_some_name" {
  name          = "private-ip-address-some-name"
  purpose       = "VPC_PEERING"
  address_type  = "INTERNAL"
  prefix_length = 16
  network       = module.vpc.vpc.id
}

resource "google_service_networking_connection" "some_other_name" {
  network                 = module.vpc.vpc.id
  service                 = "servicenetworking.googleapis.com"
  reserved_peering_ranges = [google_compute_global_address.private_ip_address_some_name.name]
}

我确实知道这会在我的 VPC 中创建 IP,但我希望在我的 VPC 内的特定子网内创建 postgres 实例。

VPC 看起来像这样:

dev-01 : {
  vpc_cidr = "x.x.x.x/16"
  subnets = {
    "subnet-a" : ["10.2.1.0/24", "secondary_ip_range/20", "x.x.x.x/20"],
    "subnet-b" : ["10.2.2.0/24", "secondary_ip_range/20", "x.x.x.x/20"],

  }

我的 postgresql 模块上的 ip_configuration 如下所示:

  ip_configuration = {
    ipv4_enabled       = true                                # Disable public IP
    private_network    = module.vpc.vpc.id                   
    allocated_ip_range = var.network_map[local.env].vpc_cidr 
    require_ssl        = true                               
    authorized_networks = [
      {
        name  = "vpc"
        value = "10.2.1.0/24"
      }
    ]
  }

我将子网配置为输出:

output "subnet-a" {
  value = google_compute_subnetwork.db_a
}

我尝试像这样引用它:

private_network    = module.vpc.subnet-a.id

但没有任何运气。

我对此有点迷失,因为我尝试指向子网的每一次尝试都失败了,任何帮助将不胜感激。

google-cloud-platform networking terraform terraform-provider-gcp vpc-peering
1个回答
-1
投票

private_network
需要VPC的ID,而不是子网(如错误所示,要匹配的正则表达式必须包含
global/networks
),docs

相反,您将子网的 id 传递给它,因此会出现错误。

© www.soinside.com 2019 - 2024. All rights reserved.