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://KEY123@backend.documents.azure.com: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()
在Python3上运行此代码会导致以下错误: pymongo.errors.ServerSelectionTimeoutError: SSL握手失败:backendstore.documents.azure.com:10255: [SSL:CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:749)
当我使用Python27运行相同的代码时,这是我的成功输出:
Database server status: { "_t": "OKMongoResponse", "ok": 1 } Collection(Database(MongoClient(host=['backend.documents.azure.com:10255'], document_class=dict, tz_aware=False, connect=True, ssl=True, replicaset='globaldb'), u'result_DB'), u'file_result')
ssl_cert_reqs=ssl.CERT_NONE
或tlsAllowInvalidCertificates=True
。它们并不能解决问题,只是通过连接而没有进行任何证书验证来消除错误,这是不安全的。如果您想为测试而这样做,那么可以,但是请不要在任何情况下在生产环境中使用! - Victor Schröder