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 do Google Cloud

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

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

  • Crie sua função do Cloud com uma conexão de banco de dados com escopo global, em vez de uma conexão de 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 Atlas cluster 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 connection string para definir o número máximo de hosts aos quais o driver se conecta. Para melhorar o desempenho do motorista, defina srvMaxHosts=3. Por exemplo:

    mongodb+srv://<username>:<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 uma conexão de emparelhamento de rede entre o cluster Atlas e a função do Google Cloud ou, alternativamente, um endpoint privado, para que você possa permitir apenas endereços IP privados da lista de acesso IP.

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

    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 de suas funções sem servidor.

  • Configurar 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.

    • Aumente a configuração de simultaneidade para minimizar as 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 Concorrência.

O exemplo a seguir conecta uma função Node.js do Google Cloud a um sistema do Atlas. Substitua <YOUR-ATLAS-CONNECTION-STRING> pela sua connection string 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;
}
← Gerenciar conexões com funções do Azure