You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python连接Azure Cosmos DB MongoDB API时SSL握手失败求助

Python连接Azure Cosmos DB(MongoDB API)遭遇SSL握手失败问题

尝试使用Python连接采用MongoDB API的Azure Cosmos DB数据库时,创建客户端过程中遇到SSL handshake failed error,问题至今未解决。

已尝试以下操作:

  • 参考相关讨论添加了推荐配置tlsCAFile=certifi.where(),但故障依旧
  • 尝试过ssl_cert_reqs=ssl.CERT_NONE或tlsAllowInvalidCertificates=True两种不安全配置,既不想牺牲安全性,且这两种配置也无法解决问题
  • 严格遵循Azure Cosmos官方教程创建客户端,环境变量已正确配置

简化后的代码如下:

import getpass
import certifi
import pymongo
import os
import sys
import pymongo
from dotenv import load_dotenv
from random import randint

#[...]

def main():
    """Connect to the API for MongoDB, create DB and collection, perform
    CRUD operations
    """
    # Variable for resource group name
    load_dotenv()
    CONNECTION_STRING = os.environ.get("COSMOS_CONNECTION_STRING")
    client = pymongo.MongoClient(CONNECTION_STRING,tls=True,tlsCAFile=certifi.where())

    for prop, value in vars(client.options).items():
        print("Property: {}: Value: {} ".format(prop, value))

    try:
        client.server_info()  # validate connection string
    except pymongo.errors.ServerSelectionTimeoutError:
        raise TimeoutError(
            "Invalid API for MongoDB connection string \
                or timed out when attempting to connect"
        )

    collection = create_database_unsharded_collection(client)
    document_id = insert_sample_document(collection)

    read_document(collection, document_id)
    update_document(collection, document_id)
    delete_document(collection, document_id)


if __name__ == "__main__":
    main()

补充疑问:当前在公司网络环境下操作,已知公司网络可能存在限制,请问该故障是否与公司网络环境有关?

环境版本信息:

  • Python:3.8.5
  • python-dotenv:1.0.0
  • certifi:2020.6.20
  • pymongo:4.4.1
  • dnspython:2.4.2
  • MongoDB服务器版本:4.2

内容的提问来源于stack exchange,提问作者yeray

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.13 02:07:07