实例的服务网络配置不正确: xxxx:SERVICE_NETWORKING_NOT_ENABLED

15

我正在尝试通过terraform在GCP中复制SQL实例。活动实例具有公共IP,但来自次要项目的子网与托管SQL实例的项目共享,并且SQL实例与次要项目的网络相关联。

我已经正确添加了ip_configuration部分中的private_network设置(我想),但是我收到了以下错误:

错误:错误,无法创建实例xxxx:googleapi:错误400:无效请求:不正确的服务网络配置实例:xxxx:xxxxx:SERVICE_NETWORKING_NOT_ENABLED.,无效

当我谷歌这个特定的错误时,我找不到太多文档,并且我对Terraform相对较新,因此我希望有人可以指出我从我的Terraform配置的这个部分或另一个资源中漏掉了什么。

resource "google_sql_database_instance" "cloudsql-instance-qa" {
  depends_on       = [google_project_service.project_apis]
  database_version = "MYSQL_5_7"
  name             = "${var.env_shorthand}-${var.resource_name}"
  project          = var.project_id
  region           = var.region

  settings {
    activation_policy = "ALWAYS"
    availability_type = "ZONAL"

    backup_configuration {
      binary_log_enabled             = "true"
      enabled                        = "true"
      point_in_time_recovery_enabled = "false"
      start_time                     = "15:00"
    }

    crash_safe_replication = "false"
    disk_autoresize        = "true"
    disk_size              = "5003"
    disk_type              = "PD_SSD"

    ip_configuration {
      ipv4_enabled    = "true"
      private_network = "projects/gcp-backend/global/networks/default"
      require_ssl     = "false"
    }

    location_preference {
      zone = var.zone
    }

    maintenance_window {
      day  = "7"
      hour = "4"
    }

    pricing_plan     = "PER_USE"
    replication_type = "SYNCHRONOUS"
    tier             = "db-n1-standard-1"
  }
}

您正在定义公共IP地址(ipv4_enabled =“true”)和私有IP地址(private_network =“projects/gcp-backend/global/networks/default”)。请使用其中之一,而不是两者同时使用。 - John Hanley
@JohnHanley 我将 ipv4_enalbed 设置为 false,但仍然遇到相同的错误。我需要在其他地方更新设置吗?当前活动/工作的实例既具有公共IP又具有私有IP,并且与次要项目中的网络相关联。 - NealR
@JohnHanley 是的,它是另一个项目中的默认网络。 - NealR
我相当确定您无法在不同的项目中指定网络。当我在GUI中启用私有IP时,我只能选择当前项目中的网络。 - John Hanley
2
我认为您还有一个额外的问题。您是否启用了“服务网络 API”?https://console.cloud.google.com/apis/library/servicenetworking.googleapis.com - John Hanley
显示剩余4条评论
1个回答

32
如果您看到以下错误: 错误:错误,无法创建实例xxxx:googleapi:错误400:请求无效:xxxx:xxxxx:SERVICE_NETWORKING_NOT_ENABLED 的服务网络配置不正确,无效。 请启用服务网络API:
gcloud services enable servicenetworking.googleapis.com --project=[PSM_PROJECT_NUMBER]

使用 Service Networking API 入门指南


如何通过 Pulumi/Terraform 实现这一点?逐个手动启用功能非常麻烦! - Rounak Datta
@RounakDatta - 创建一个新问题。 - John Hanley
1
@RounakDatta 不确定你是否像John建议的那样创建了一个新问题,但为了后世留存,在Pulumi中,你可以使用GCP提供者的https://www.pulumi.com/registry/packages/gcp/api-docs/projects/service/。 - undefined
谢谢,是的,我能够顺利地使用你提到的软件包完成这个任务。 - undefined

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接