Essayer de se connecter à Azure Cosmosdb Mongo Server des résultats dans une erreur SSL Handshake.
J'utilise Python3
et Pymongo
Pour vous connecter à mon azur cosmosdb. La connexion fonctionne bien si j'exécute le code avec Python27 mais provoque l'erreur ci-dessous lorsque vous utilisez Python3:
import pymongo
from pymongo import MongoClient
import json
import sys
def check_server_status(client, data):
'''check the server status of the connected endpoint'''
db = client.result_DB
server_status = db.command('serverStatus')
print('Database server status:')
print(json.dumps(server_status, sort_keys=False, indent=2, separators=(',', ': ')))
coll = db.file_result
print (coll)
coll.insert_one(data)
def main():
uri = "mongodb://[email protected]:10255/?ssl=true&replicaSet=globaldb"
client = pymongo.MongoClient(uri)
emp_rec1 = {
"name":"Mr.Geek",
"eid":24,
"location":"delhi"
}
check_server_status(client, emp_rec1)
if __name__ == "__main__":
main()
En cours d'exécution sur Python3
Résultats dans ci-dessous Erreur:
pympongo.Errors.ServersElementTeureRorror: SSL Handshake a échoué: backendstore.documents.azure.com:10255: [SSL: certificat_verify_failed] Certificat Vérifier a échoué (_ssl.c: 749)
Voici ma sortie réussie lorsque j'exécute le même code avec Python27
:
Statut du serveur de base de données: {"_": "okmongoresponse", "ok": 1} collection (base de données (mongoclient (hôte = ["backend.documents.azure.com:10255 '], document_class = dict, tz_aware = false, connectez-vous = Vrai, ssl = true, réplicaset = 'globaldb'), u'result_db '), u'file_result')
Face au même problème lorsque vous essayez de connecter MongoDB à partir de l'océan Digital, résolu en utilisant cette fonction avec des paramètres de Mongoclient:
def get_client(Host,port,username,password,db):
return MongoClient('mongodb://{}:{}/'.format(Host,port),
username=username,
password=password,
authSource=db,
ssl=True,ssl_cert_reqs=ssl.CERT_NONE)
client = get_client("Host-ip","port","username","password","db-name")
Résolu le problème avec ce changement:
client = pymongo.MongoClient(uri, ssl_cert_reqs=ssl.CERT_NONE)
Sur Mac Mojave 10.14.6, j'ai utilisé (Pymongo 3.10 et python 3.7), pour résoudre:
flacon pympo pympo.Errors.ServersElementTimeTerror [SSL: Certificat_verify_FAILED]
Exécuter dans le terminal:
Sudo /Applications/Python\ 3.7/Install\ Certificates.command
Si vous utilisez d'autres python version, changez que Versión numéro (dans mon cas, j'ai Python 3.7)