Estos contenidos se han traducido de forma automática para su comodidad, pero Huawei Cloud no garantiza la exactitud de estos. Para consultar los contenidos originales, acceda a la versión en inglés.
Actualización más reciente 2023-02-21 GMT+08:00

Python

Esta sección describe cómo utilizar el cliente MongoDB en Python para conectarse a una instancia de clúster.

Prerrequisitos

  1. Para conectar un ECS a una instancia, el ECS debe poder comunicarse con la instancia DDS. Puede ejecutar el siguiente comando para conectarse a la dirección IP y el puerto del servidor de instancia para probar la conectividad de red.

    curl ip:port

    Si se muestra el mensaje It looks like you are trying to access MongoDB over HTTP on the native driver port, la conectividad de red es normal.

  2. Instale Python y el paquete de instalación de terceros pymongo en el ECS. Se recomienda Pymongo 2.8.
  3. Si SSL está habilitado, debe descargar el certificado raíz y subirlo al ECS.

Código de conexión

  • Habilitación de SSL
    import ssl
    from pymongo import MongoClient
    conn_urls="mongodb://rwuser:rwuserpassword@ip:port/{mydb}?authSource=admin"
    connection = MongoClient(conn_urls,connectTimeoutMS=5000,ssl=True, ssl_cert_reqs=ssl.CERT_REQUIRED,ssl_match_hostname=False,ssl_ca_certs=${path to certificate authority file})
    dbs = connection.database_names()
    print "connect database success! database names is %s" % dbs
  • Desactivación de SSL
    import ssl
    from pymongo import MongoClient
    conn_urls="mongodb://rwuser:rwuserpassword@ip:port/{mydb}?authSource=admin"
    connection = MongoClient(conn_urls,connectTimeoutMS=5000)
    dbs = connection.database_names()
    print "connect database success! database names is %s" % dbs
  • La base de datos de autenticación en la URL debe ser admin. Eso significa configurar authSource a admin.
  • En el modo SSL, es necesario generar manualmente el archivo trustStore.

  • La base de datos de autenticación debe ser admin y, a continuación, cambiar a la base de datos de servicio.