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

通过VPC连接Cloud Function返回404错误求助排查

Cloud Function仅内部流量模式404问题排查与IP限制方案

问题场景回顾

  • 已部署的Cloud Function设置为仅允许内部流量,通过Serverless VPC Access连接至同区域(europe-west1)的VPC子网(10.0.0.0/28,无公网IP)
  • VPC防火墙配置为允许0.0.0.0/0所有端口请求
  • 本地用curl触发函数返回404错误,切换为“允许所有流量”则正常访问

核心原因

当Cloud Function设为仅允许内部流量时,仅接受来自以下来源的请求:

  • VPC内部的计算资源(如GCE实例)
  • 关联的Serverless VPC Access连接器范围内的请求
  • Google内部服务请求

本地curl属于公网请求,不符合内部流量准入条件,因此被前端路由拒绝,返回404(并非函数不存在)。

排查与修正步骤

1. 验证Serverless VPC Access连接器配置

  • 确认连接器与Cloud Function处于同一区域(必须均为europe-west1)
  • 检查连接器是否关联了目标子网(10.0.0.0/28)
  • 确保连接器状态为RUNNING,无异常报错

2. 用内部资源发起测试请求

要验证内部流量访问,需从VPC内部发起请求:

  1. 在目标子网创建一台GCE虚拟机(因子网无公网IP,可通过gcloud compute ssh命令借助IAM权限登录,或配置Cloud NAT)
  2. 在GCE实例内执行curl调用Cloud Function的内部HTTPS URL(格式:https://<function-name>-<project-id-hash>.europe-west1.cloudfunctions.net/<function-endpoint>)
  3. 若使用Cloud Shell测试,需先将Cloud Shell连接至目标VPC子网

3. 细化防火墙规则配置

即使已设置0.0.0.0/0允许所有端口,仍需确认:

  • 防火墙规则的目标包含Serverless VPC Access连接器的标签(或设置为“所有实例”)
  • 入站规则允许从VPC内部IP段(10.0.0.0/28)及Serverless VPC Access连接器的分配IP段(创建连接器时指定,如10.8.0.0/29)访问443端口(Cloud Function默认用HTTPS)

4. 确认Cloud Function内部流量设置

  • 检查函数“连接”配置,确认已选择正确的Serverless VPC Access连接器,且流量限制为仅允许内部流量
  • 验证HTTP触发器配置无错误,函数本身可正常运行

实现IP限制且排除服务账号认证的方案

若需限制特定IP访问,同时无需依赖服务账号认证,可采用以下方式:

  • 保持Cloud Function流量设置为允许所有流量,通过Cloud Armor配置IP白名单,仅放行指定IP段的请求
  • 若坚持使用仅内部流量模式,可在VPC防火墙规则中设置入站限制,仅允许目标IP段(如10.0.0.0/28内的特定IP)访问Cloud Function的443端口

内容的提问来源于stack exchange,提问作者stellenberger

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.30 23:00:24