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

在Google Run的Docker容器中运行Flask应用无法连接MongoDB Atlas

解决Google Run上Flask应用连接MongoDB Atlas超时问题

一、优先排查连接串配置错误(核心问题)

你的错误信息明确显示尝试连接localhost:27017,但你声明使用的是MongoDB Atlas的srv连接串,这说明应用代码里没有正确加载Atlas的连接地址:

  • 检查代码中MongoDB连接逻辑,确保没有硬编码mongodb://localhost:27017这类本地连接地址
  • 确认连接串从环境变量读取(推荐方式),而非写死在代码里:
    import os
    from pymongo import MongoClient
    
    mongo_uri = os.getenv("MONGO_URI")
    client = MongoClient(mongo_uri)
    
  • 验证Google Run服务的环境变量是否正确配置了MONGO_URI,值为你的mongodb+srv://<user>:<password>@<cluster>.<domain>.mongodb.net/?retryWrites=true&w=majority

二、Google Run出站网络配置确认

如果确认连接串配置正确,再检查Google Run的网络设置:

  • Google Run默认允许出站访问公网,MongoDB Atlas的端口(27017及TLS加密端口)是开放的,无需额外VPC配置(你已设置0.0.0.0白名单,说明是公网访问场景)
  • 你的Dockerfile未添加防火墙限制,容器内出站流量无额外阻碍
  • 确认Atlas白名单规则已生效:检查0.0.0.0/0规则是否保存并同步到集群

三、额外排查步骤

  • 本地验证连接串有效性:用相同的连接串直接在本地测试连接Atlas,确认能正常访问
  • 查看Google Run日志:在Google Cloud Console的Run服务详情页,检查应用日志,确认连接时使用的URI是否正确
  • 确认依赖版本:确保pymongo版本≥3.6,且requirements.txt中添加了dnspython>=2.0.0(支持srv连接解析)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 16:55:28