I have a simple python script that’s running on Azure Container Instance. I am trying to do an insert to MongoDB Atlas on cloud with Pymongo and i keep getting this error:
pymongo.errors.ServerSelectionTimeoutError: test-shard-00-01.tvyda.mongodb.net:27017: timed out,test-shard-00-00.tvyda.mongodb.net:27017: timed out,test-shard-00-02.tvyda.mongodb.net:27017: timed out, Timeout: 5.0s, Topology Description: <TopologyDescription id: 616838412c3f7b25d8dfc654, topology_type: ReplicaSetNoPrimary, servers: [<ServerDescription ('test-shard-00-00.tvyda.mongodb.net', 27017) server_type: Unknown, rtt: None, error=NetworkTimeout('test-shard-00-00.tvyda.mongodb.net:27017: timed out',)>, <ServerDescription ('test-shard-00-01.tvyda.mongodb.net', 27017) server_type: Unknown, rtt: None, error=NetworkTimeout('test-shard-00-01.tvyda.mongodb.net:27017: timed out',)>, <ServerDescription ('test-shard-00-02.tvyda.mongodb.net', 27017) server_type: Unknown, rtt: None, error=NetworkTimeout('test-shard-00-02.tvyda.mongodb.net:27017: timed out',)>]>
This is the code i have:
conn_str = f"mongodb+srv://{self.mongo_user}:{self.mongo_password}@{self.mongo_cluster}/{self.mongo_db}?retryWrites=true&w=majority"
db_name = self.mongo_db
collection_name = self.mongo_collection
client = pymongo.MongoClient(
conn_str, serverSelectionTimeoutMS=5000, tls=True, tlsAllowInvalidCertificates=True)
db = client[db_name]
collection = db[collection_name]
result = collection.insert_one(some_dict)
I have added the IP of the container instance to the Network Access list in MongoDB cloud.
It is working perfectly fine from Docker desktop that i run on my local machine.
I couldnt fine any solution to this. Any help is appreciated. Thanks.
Also posted on Stack Overflow: python - PyMongo Cant connect to MongoDB Atlas from Azure Container Instance - Stack Overflow