【发布时间】: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