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

使用Terraform通过共享VPC创建BASIC类型Filestore时出错

解决共享VPC创建Filestore实例的项目不匹配报错

问题场景

尝试从服务项目通过共享VPC创建BASIC类型Filestore实例,同一项目内使用VPC时仅需少量修改即可正常运行,但跨共享VPC时触发报错。原Terraform代码如下:

provider "google" {
  project     = var.project
  region      = var.region
}

resource "google_filestore_instance" "filestore_instance" {
  project = var.project
  name   = var.name
  zone   = var.zone
  tier   = var.tier
  labels = var.labels

  file_shares {
    capacity_gb = var.capacity
    name        = var.fileshare_name
  }

  networks {
    network = "projects/shared-vpc-host-project-id/global/networks/shared-vpc-network-name"
    modes   = var.modes
  }
}

报错信息

Error 400: network project mismatch with instance project with project_id and project_number

解决方案

  1. 确认共享VPC权限配置

    • 确保服务项目已被共享VPC宿主项目添加为服务项目
    • 确保执行Terraform的账号在服务项目拥有roles/filestore.admin权限,同时在宿主项目拥有roles/compute.networkUser权限(用于访问共享VPC)
  2. 修正Filestore资源配置
    在networks块中添加connect_mode = "PRIVATE_SERVICE_ACCESS",这是共享VPC场景下Filestore实例的必填配置,用于关联私有服务访问连接:

修正后的代码

provider "google" {
  project     = var.project  # 服务项目ID
  region      = var.region
}

resource "google_filestore_instance" "filestore_instance" {
  project = var.project
  name   = var.name
  zone   = var.zone
  tier   = var.tier
  labels = var.labels

  file_shares {
    capacity_gb = var.capacity
    name        = var.fileshare_name
  }

  networks {
    network = "projects/shared-vpc-host-project-id/global/networks/shared-vpc-network-name"
    modes   = var.modes
    # 添加共享VPC必填的连接模式
    connect_mode = "PRIVATE_SERVICE_ACCESS"
  }
}
  1. 额外检查项
    • 确认shared-vpc-host-project-id和shared-vpc-network-name替换为实际的宿主项目ID和共享VPC名称
    • 确保私有服务访问连接已在宿主项目中创建并关联到共享VPC(如果尚未创建,需要先通过google_compute_global_address和google_service_networking_connection资源配置)

内容的提问来源于stack exchange,提问作者Hari Hara subramanian

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 04:07:14