Este conteúdo foi traduzido por máquina para sua conveniência e a Huawei Cloud não pode garantir que o conteúdo foi traduzido com precisão. Para exibir o conteúdo original, use o link no canto superior direito para mudar para a página em inglês.
Atualizado em 2023-11-14 GMT+08:00

Python

Esta seção descreve como usar o cliente de MongoDB no Python para se conectar a uma instância de cluster.

Pré-requisitos

  1. Para conectar um ECS a uma instância, o ECS deve ser capaz de se comunicar com a instância do DDS. Você pode executar o seguinte comando para conectar-se ao endereço IP e à porta do servidor de instância para testar a conectividade de rede.

    curl ip:port

    Se a mensagem It looks like you are trying to access MongoDB over HTTP on the native driver port for exibida, a conectividade de rede é normal.

  2. Instale Python e o pacote de instalação de terceiros pymongo no ECS. Pymongo 2.8 é recomendado.
  3. Se SSL estiver ativado, você precisará baixar o certificado raiz e carregá-lo no ECS.

Código de conexão

  • Ativar 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
  • Desativar SSLi
    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
  • O banco de dados de autenticação no URL deve ser admin. Isso significa definir authSource como admin.
  • No modo SSL, você precisa gerar manualmente o arquivo trustStore.

  • A base de dados de autenticação tem de ser admin e, em seguida, mudar para a base de dados de serviço.