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

Google Cloud Run Docker容器无法连接MongoDB Atlas问题排查

故障根因

该故障由Cloud Run侧配置错误导致,和MongoDB Atlas服务本身无关。
你测试时把连接串改错依然返回相同超时,已经能直接坐实根因:应用发出的MongoDB连接请求根本没有到达Atlas集群,在网络路由阶段就被丢弃了。


现有配置的核心问题

你虽然完成了VPC对等连接搭建、无服务器VPC访问连接器创建,但漏了两个最关键的配置:

  1. Cloud Run默认的VPC连接器路由规则仅会把目标为私网IP段的请求转发到VPC网络,公网目标的请求默认走Cloud Run自带的公网出口,完全不会经过你配置的VPC对等链路。而你用的MongoDB连接串默认是公网域名,解析出来的是公网IP,请求根本走不到对等链路里。
  2. 你没有配置对应私有DNS解析,哪怕流量走到VPC里,解析MongoDB域名依然返回公网IP,还是会绕回公网链路。

另外你贴的Atlas侧日志完全是无效信息:日志里记录的所有连接都是Atlas集群内部运维组件(MongoDB Automation Agent,用Go语言驱动)的内部心跳连接,根本没有你.NET应用发过来的请求,不要被这部分日志误导。

你之前调整的TLS1.2配置、连接超时、连接池参数,以及代码逻辑、驱动版本、Docker镜像本身都没有问题——本地运行正常已经可以证明这一点,不需要在这些层面继续排查。


修复步骤

按以下顺序调整配置即可解决:

  • 打开Cloud Run服务的配置页,找到「VPC连接」相关设置,把VPC出口流量的路由规则从默认的仅将私有IP路由到VPC改为将所有流量路由到VPC。
  • 确认你创建的无服务器VPC访问连接器和Cloud Run服务处于同一地域,跨地域的连接器无法正常工作。
  • 在GCP VPC内创建Cloud DNS私有托管区域,配置MongoDB Atlas VPC对等连接对应的私有域名解析规则,保证VPC内解析MongoDB连接串域名时返回的是Atlas集群的私网IP,而非公网IP。
  • 检查VPC防火墙规则,双向放通Cloud Run连接器网段、VPC业务网段到Atlas VPC网段的27017端口访问权限,不要有ACL拦截。
  • 配置完成后可以通过Cloud Run的调试终端执行mongosh "<你的MongoDB连接串>"测试连通性,验证通过后再重启服务即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 21:09:18