Cloud Run跨项目使用Serverless Connector报找不到指定网络错误
问题现象
- 初始部署状态:单Google Cloud项目内Cloud Run容器通过同项目Serverless Connector连接Cloud SQL实例,运行正常。
- 迁移操作:将Cloud SQL实例迁移至同组织下另一项目,在目标项目新建Serverless Connector,经同项目Cloud Function验证可正常访问数据库、执行表行数查询,功能无异常。
- 配置更新后故障:将Cloud Run的连接器配置更新为新连接器的标准格式资源路径
projects/PROJECT_ID/locations/europe-west3/connectors/CONNECTOR_NAME,发布新修订版本时失败。 - 报错内容:
- 发布接口返回:
"Could not find specified network to attach to app." - Cloud Run运行日志提示:
"Ready condition status changed to False for Service {service name} with message: Deploying Revision."
- 发布接口返回:
环境排查信息
执行连接器详情查询命令:
gcloud compute networks vpc-access connectors describe --region=europe-west3 projects/PROJECT_ID/locations/europe-west3/connectors/CONNECTOR_NAME
返回结果如下,连接器本身状态为READY:
connectedProjects: - company-service-dev - a-project-name ipCidrRange: 10.8.0.0/28 machineType: f1-micro maxInstances: 3 maxThroughput: 300 minInstances: 2 minThroughput: 200 name: projects/PROJECT_ID/locations/europe-west3/connectors/CONNECTOR_NAME network: company-project-servicename state: READY
故障根因
跨项目调用Serverless VPC Connector时,调用方所在项目必须被加入连接器的connectedProjects授权列表,否则调用方没有权限感知连接器绑定的VPC网络,直接触发“找不到指定网络”的报错。
当前返回结果中connectedProjects仅包含2个项目,Cloud Run所在的服务项目不在授权范围内。同项目下Cloud Function验证通过仅能证明连接器本身功能正常,不能代表跨项目访问权限配置完成。
修复步骤
- 补全连接器跨项目访问授权
在连接器所属的目标项目执行更新命令,将Cloud Run所在的项目ID加入授权列表:
执行完成后重新执行gcloud compute networks vpc-access connectors update CONNECTOR_NAME \ --region=europe-west3 \ --add-connected-projects=<替换为Cloud Run实际所在的项目ID>describe命令,确认Cloud Run所在项目出现在connectedProjects列表中。 - 配置IAM权限
为Cloud Run服务使用的运行时服务账号(默认格式为<Cloud Run项目编号>-compute@developer.gserviceaccount.com),在连接器所属项目授予vpcaccess.connectors.use角色,确保服务账号有权限调用连接器资源。 - 校验基础配置一致性
- 确认Cloud Run与连接器处于同一区域(当前均为europe-west3,符合要求)
- 确认填写的连接器完整资源路径与
describe返回的name字段完全一致,无拼写错误 - 确认组织策略未限制跨项目Serverless VPC访问、连接器绑定的VPC网络无额外项目接入限制
- 等待权限同步1-2分钟后,重新发布Cloud Run新修订版本即可恢复正常。
内容的提问来源于stack exchange,提问作者Zymotik
相关产品推荐
相关产品推荐

