Para agentes de IA: um índice de documentação está disponível em https://www.mongodb.com/pt-br/docs/llms.txt — as versões de markdown de todas as páginas estão disponíveis anexando .md a qualquer caminho de URL.
Menu Docs

Gerenciar conexões com AWS Lambda

Utilize as seguintes melhores práticas para gerenciar adequadamente as conexões entre a AWS Lambda e o Atlas:

  • Defina o cliente para o servidor MongoDB fora da função de manipulador AWS Lambda.

    Não defina um novo objeto de cliente 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. Para obter o melhor desempenho, siga estas diretrizes:

    1. Crie uma vez o objeto do cliente .

    2. Armazene o objeto para que sua função possa reutilizar o cliente 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.

  • If you have a Lambda function that connects to a sharded cluster with many shards, you might experience performance issues. For example, with a ten shard cluster, the driver connects to all thirty mongos instances by default. You can use the srvMaxHosts option in your connection string to set the maximum number of hosts that the driver connects to. To improve driver performance, set srvMaxHosts=3. For example:
    mongodb+srv://<db_username>:<db_password>@<clusterName>.mongodb.net/?retryWrites=true&w=majority&srvMaxHosts=3
  • Restringir o acesso à rede ao seu Atlas cluster.

    Conecte-se ao cluster do Atlas por meio de rede privada usando uma conexão de peering rede entre o cluster do Atlas e a função do AWS Lambda ou, alternativamente, um private endpoint, para que você possa permitir apenas endereços IP privados da sua lista de acesso IP.

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

    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 usuários de banco de dados ao permitir o acesso de qualquer lugar.

Observação

Se você adicionar a qualquer lista de acesso do projeto qualquer CIDR IPv4 /0, como 0.0.0.0/0 ou 10.0.0.0/0, o Atlas enviará um e-mail de alerta a todos os usuários que receberam uma função diretamente no projeto ou indiretamente uma função por meio de associação da equipe (se a equipe receber uma função no projeto).

  • Set maxIdleTimeMS to 60000 to automatically close your connections after 1 minute of idle time. Tuning your maxIdleTimeMS can help reduce the occurrence of timeout errors from your serverless functions.
  • Configure o AWS Access unificado e use a autenticação IAM do AWS sempre que possível.

    Você pode conectar aos seus clusters do Atlas utilizando funções do AWS IAM em vez de codificar suas credenciais no Lambda. As credenciais codificadas podem ser visualizadas por qualquer pessoa que acesse seu ambiente do AWS Lambda, o que pode representar um risco à segurança. Com a autenticação do AWS IAM, o Atlas acessa o AWS Lambda por meio de uma função presumida do IAM, então você não precisa de credenciais em suas cadeias de conexão.

    O Atlas permite a autenticação do AWS IAM para clusters que executam o MongoDB versão 7.0 ou superior. É altamente recomendável usar a autenticação do AWS IAM para conexões Lambda se o seu cluster atender aos requisitos.

  • A quantidade de memória alocada para uma função Lambda é padronizada para 128 MB. Você pode configurar a quantidade de memória alocada para uma função Lambda, entre 128 MB e 10.240 MB. Certifique-se de alocar memória suficiente. Aumente a memória para aumentar a quantidade de CPU virtual disponível e melhorar o desempenho do driver MongoDB. Para saber mais, consulte Memória e potência de computação.

  • Defina suas variáveis de ambiente AWS_STS_REGIONAL_ENDPOINTS e AWS_REGION.

#include <mongoc/mongoc.h>
void lambda_handler ()
{
bson_error_t error;
mongoc_init();
// Parse URI
char *uri_string = "your-mongodb-atlas-connection-string";
mongoc_uri_t *uri = mongoc_uri_new_with_error (uri_string, &error);
if (!uri) {
fprintf (stderr, "Failed to parse URI: %s\n", error.message);
return;
}
// Create client
mongoc_client_t *client = mongoc_client_new_from_uri_with_error(uri, &error);
if (!client) {
fprintf(stderr, "Failed to create client: %s\n", error.message);
return;
}
// Perform client operations here
// Cleanup
mongoc_client_destroy(client);
mongoc_uri_destroy (uri);
mongoc_cleanup();
}
Avalie esta página