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

Google Cloud Functions通过私有端点连接MongoDB Atlas超时求助

排查Cloud Functions v2通过Private Service Connect连接MongoDB Atlas超时问题

核心问题

  • 报错信息:Unhandled error MongoServerSelectionError: Server selection timed out after 30000 ms
  • 仅将0.0.0.0/0加入MongoDB白名单可正常连接,但需保留私有网络访问限制
  • 请求流向卡在Connector Subnet到Endpoint Subnet环节

一、检查VPC路由配置

  • 确认VPC路由表中存在指向Private Service Connect(PSC)端点的自定义路由:
    1. 进入VPC路由表页面,查看是否有针对MongoDB Atlas私有IP段(或PSC端点IP)的路由规则,下一跳需指定创建的PSC端点
    2. 若缺失,手动添加路由:目标范围设为MongoDB Atlas集群的私有CIDR(可在Atlas控制台获取),下一跳选择对应PSC端点
    3. 确保该路由表已关联连接器所在的/28子网,否则连接器子网的流量无法找到去往端点的路径

二、验证防火墙规则覆盖范围

  • 现有全访问规则需同时覆盖连接器子网和端点子网的双向流量:
    • 源和目标均需包含两个子网的CIDR段(例如10.0.0.0/24和10.0.1.0/28)
    • 明确放行TCP 27017端口(MongoDB默认端口),以及UDP 53端口(用于私有DNS解析)
  • 排查是否存在低优先级但更严格的防火墙规则拦截流量,可临时禁用非必要规则做测试

三、核对Serverless VPC Access连接器配置

  • 确认连接器所在子网已开启私有Google访问:进入子网配置页面,检查“私有Google访问”开关是否启用,否则连接器无法访问VPC内的PSC端点
  • 检查连接器状态:执行gcloud vpc-access connectors describe [CONNECTOR_NAME] --region us-central1,确认状态为READY且无报错信息
  • 临时调整连接器实例数(例如从1个增至2-3个),排除因实例规格(e2-micro)导致的流量瓶颈

四、MongoDB Atlas侧私有连接验证

  • 确认Atlas的Private Endpoint配置中,关联的GCP项目ID、VPC网络名称与实际环境完全匹配
  • 检查Atlas白名单仅包含VPC两个子网的CIDR段及PSC端点的IP范围,避免遗漏
  • 在VPC内部署测试VM(放在连接器子网或端点子网),执行以下命令验证连接:
    mongosh "mongodb+srv://[CLUSTER_NAME].mongodb.net/" --username [USER]
    
    若VM能正常连接,说明问题出在Cloud Functions的VPC连接器配置;若VM也超时,则VPC到Atlas的链路存在问题

五、DNS解析排查

  • 在VPC内的测试VM上执行nslookup [CLUSTER_NAME].mongodb.net,确认返回的是MongoDB私有IP而非公网IP
  • 若解析返回公网IP,需配置Cloud DNS私有区域,将Atlas域名映射到对应的私有端点IP,确保流量走私有链路
  • 检查Cloud Functions的vpcConnectorEgressSettings设为PRIVATE_RANGES_ONLY后,是否强制使用VPC内的DNS解析,可通过函数日志查看实际解析的IP地址

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.16 16:19:52