Menu Docs
Página inicial do Docs
/
MongoDB Atlas
/

Gerencie conexões com o Google Cloud

Nesta página

  • Melhores práticas
  • Exemplo de conexão com o Google Cloud

Você pode interagir com seus Atlas clusters usando GCP Funções e GCP Run.

Use as seguintes melhores práticas para gerenciar adequadamente as conexões entre as funções do Google Cloud Platform e o Atlas:

  • Crie uma função de nuvem com conexão a um banco de dados com escopo global, não com conexão a um banco de dados com escopo de função.

    Não defina um novo objeto MongoClient sempre que invocar a sua função. Isso faz com que o driver crie uma nova conexão de banco de dados com cada chamada de função. Isso pode ser caro e resultar em um aplicativo que exceda os limites de conexão do banco de dados. Ao definir um novo MongoClient, você deve:

    1. Crie uma vez o objeto MongoClient.

    2. Armazene o objeto para que sua função possa reutilizar o MongoClient em invocações de função.

    O Exemplo de conexão reutiliza as conexões de banco de dados existentes para acelerar a comunicação com o banco de dados e manter as contagens de conexão com o banco de dados em um nível razoável em relação ao tráfego do aplicativo.

    Se você tiver uma função que se conecta a um cluster fragmentado com muitos fragmentos, poderá enfrentar problemas de desempenho. Por exemplo, com um cluster do Atlas de dez fragmentos, o driver se conecta a todas as trinta instâncias mongos por padrão. Você pode usar a opção srvMaxHosts em sua string de conexão para definir o número máximo de hosts aos quais o driver se conecta. Para melhorar o desempenho do driver, defina srvMaxHosts=3. Por exemplo:

    mongodb+srv://<db_username>:<db_password>@<clusterName>.mongodb.net/?retryWrites=true&w=majority&srvMaxHosts=3

    Para saber mais, consulte Opções de conexão.

  • Restringir o acesso à rede ao seu Atlas cluster.

    Conecte-se ao Atlas cluster por meio de rede privada usando umaconexão de peering de rede entre o cluster Atlas e a função GCP ou, alternativamente, um endpoint privado, para que você possa permitir apenas endereços IP privados da sua lista de acessoIP .

    Se você não usa rede privada, considere conectar-se ao cluster do Atlas por meio de um gateway NAT. Caso contrário, você deve permitir que todos os IPs (0.0.0.0/0) acessem seu cluster do Atlas.

    Aviso

    Adicionar 0.0.0.0/0 à sua lista de acesso IP permite o acesso ao cluster de qualquer lugar na Internet pública. Certifique-se de usar credenciais fortes para todos os utilizadores de banco de dados ao permitir o acesso de qualquer lugar.

  • Defina maxIdleTimeMS como 60000 para fechar automaticamente suas conexões após 1 minuto de tempo ocioso. Ajustar seu maxIdleTimeMS pode ajudar a reduzir a ocorrência de erros de tempo limite nas suas funções sem servidor.

  • Configure Simultaneidade. Quando você cria uma nova função do Google Cloud:

    • Selecione o ambiente do 2nd gen , que pode lidar com várias solicitações simultâneas. A 2a geração também reduz a carga de conexão no servidor ao permitir que a função compartilhe um único MongoClient com muitas invocações simultâneas.

    • Aumentar a configuração de simultaneidade para minimizar inicializações a frio e melhorar a latência.

    Observação

    Se você aumentar a configuração de simultaneidade, talvez seja necessário aumentar a CPU para obter o melhor desempenho. Para saber mais, consulte Simultaneidade.

O exemplo a seguir conecta uma função Node.js Google Cloud a uma implantação do Atlas. Substitua <YOUR-ATLAS-CONNECTION-STRING> por sua string de conexão do Atlas.

const { MongoClient } = require('mongodb');
let client;
async function getConnection() {
if (!client) {
const client = new MongoClient('<YOUR-ATLAS-CONNECTION-STRING>');
client.on('connectionCreated', () => {
console.log('New connection created successfully.');
});
// Connect to the database in the global scope
await client.connect();
}
return client;
}

Voltar

Azure Functions