跨项目使用Serverless VPC Connector是否必须配置Shared VPC?
跨项目Cloud Function连接GCE的配置方案说明
首先明确核心结论:跨项目场景不是必须创建Shared VPC,有两种可行配置方案,你此前部署失败大概率是直接套用了同项目VPC连接配置逻辑,存在跨项目权限或资源路径配置疏漏导致的。
方案1:无需Shared VPC的轻量跨项目配置
该方案不需要改造现有VPC架构,仅需调整权限和配置参数即可实现互通,配置步骤如下:
- VPC Serverless Connector必须创建在GCE所在的projectB的目标VPC下,不可创建在云函数所在的projectA
- 给projectA的Cloud Function运行时服务账号(格式为
service-<projectA项目编号>@gcf-admin-robot.iam.gserviceaccount.com)授予projectB下的roles/vpcaccess.user权限 - 云函数配置VPC连接器时,需填写完整资源路径:
projects/<projectB项目ID>/locations/<区域>/connectors/<连接器名称>,不可仅填写连接器短名称 - 配置projectB的VPC防火墙规则,放开来自VPC Serverless Connector的IP段到目标GCE实例对应端口的入站访问权限
- 根据需求配置云函数VPC出口规则:仅访问GCE内网地址选
Private Ranges Only,需要通过VPC访问公网选Route All Traffic
方案2:Shared VPC配置方案
如果你的团队有多项目统一网络管控的规划,可以选择该方案,配置步骤如下:
- 将GCE所在的projectB设置为Shared VPC宿主项目,把GCE所属的VPC子网共享给云函数所在的projectA
- 在projectA的云函数同区域下,创建VPC Serverless Connector,关联刚刚共享过来的VPC子网
- 云函数部署时直接选择projectA下的该VPC连接器即可完成网络互通
部署卡顿失败的常见排查点
- 你此前参考的同项目VPC连接指南默认是资源都在同一个项目下的场景,直接套用会出现连接器跨项目无权限访问的问题,云函数部署时无法拉取VPC资源就会出现超时失败
- 确认VPC Serverless Connector的所在区域和云函数部署区域完全一致,跨区域的连接器无法正常使用
- 检查projectB的VPC是否存在组织策略限制,禁止外部项目的资源接入
内容的提问来源于stack exchange,提问作者jamiet
相关产品推荐
相关产品推荐

