【问题标题】:Changed from AWS-self-hosted MongoDB to Atlas causes pymongo.errors.ServerSelectionTimeoutError:从 AWS 自托管的 MongoDB 更改为 Atlas 导致 pymongo.errors.ServerSelectionTimeoutError:
【发布时间】:2021-11-03 22:53:49
【问题描述】:

我有一个在 ECS 中运行的应用程序,它连接到同一 VPC 中的自托管 mongoDB EC2 实例。连接 url 是 EC2 实例的私有 IP。下面是连接代码

# # mongodb connection string from systen env
MONGODB_URL = os.environ.get('MONGODB_URL', 'localhost')
MONGODB_PORT= int(os.environ.get('MONGODB_PORT', '27017'))
client = MongoClient(MONGODB_URL, MONGODB_PORT)

我将数据库移至 Atlas,建立了 VPC 对等连接,将 AWS VPC 网络列入白名单,并为应用创建了一个新的数据库用户。

然后我将ECS任务中的连接字符串改为

MONGODB_URL: mongodb+srv://<username>:<password>@mongodb-prod.zzl18.mongodb.net/nameofDB?retryWrites=true&w=majority

现在当我运行程序时,我得到:

pymongo.errors.ServerSelectionTimeoutError: mongodb-prod-shard-00-00.zzl18.mongodb.net:27017: timed out,mongodb-prod-shard-00-02.zzl18.mongodb.net:27017: timed out,mongodb-prod-shard-00-01.zzl18.mongodb.net:27017: timed out

为了查看是否是网络问题,我打开了 DB 网络访问到 0.0.0.0/0

我仍然收到同样的错误。

也许问题出在连接字符串上,但我不确定。您能提供的任何帮助将不胜感激。

【问题讨论】:

    标签: python-3.x mongodb amazon-web-services amazon-ecs mongodb-atlas


    【解决方案1】:

    需要将ECS App子网添加到VPC路由表中。

    【讨论】:

      猜你喜欢
      • 2021-12-14
      • 1970-01-01
      • 2012-06-30
      • 1970-01-01
      • 1970-01-01
      • 2020-04-10
      • 1970-01-01
      • 2022-01-07
      • 1970-01-01
      相关资源
      最近更新 更多