

O AWS SDK para JavaScript v2 chegou ao fim do suporte. Recomendamos migrar para o [AWS SDK para JavaScript v3](https://docs.aws.amazon.com//sdk-for-javascript/v3/developer-guide/). Para ver detalhes e informações sobre como migrar, consulte este [anúncio](https://aws.amazon.com/blogs//developer/announcing-end-of-support-for-aws-sdk-for-javascript-v2/).

# Reutilizar conexões com Keep-alive no Node.js
<a name="node-reusing-connections"></a>

Por padrão, o agente Node.js HTTP/HTTPS padrão cria uma nova conexão TCP para cada nova solicitação. Para evitar o custo de estabelecer uma nova conexão, você pode reutilizar uma conexão existente.

Para operações de curta duração, como consultas do DynamoDB, a sobrecarga de latência da configuração de uma conexão TCP pode ser maior do que a própria operação. [Além disso, como a [criptografia em repouso](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/encryption.howitworks.html) do DynamoDB é integrada com o AWS KMS, você pode experimentar latências do banco de dados tendo que restabelecer novas entradas de cache do AWS KMS para cada operação.](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/encryption.howitworks.html)

A maneira mais fácil de configurar o SDK para JavaScript para reutilizar conexões TCP é definir a variável de ambiente ` AWS_NODEJS_CONNECTION_REUSE_ENABLED` como `1`. Esse recurso foi adicionado na versão [2.463.0](https://github.com/aws/aws-sdk-js/blob/master/CHANGELOG.md#24630).

Como alternativa, você pode definir a propriedade `keepAlive` de um agente HTTP ou HTTPS como `true`, conforme exibido no exemplo a seguir.

```
const AWS = require('aws-sdk');
// http or https
const http = require('http');
const agent = new http.Agent({
  keepAlive: true, 
// Infinity is read as 50 sockets
  maxSockets: Infinity
});

AWS.config.update({
  httpOptions: {
    agent
  }
});
```

O exemplo a seguir mostra como definir `keepAlive` para apenas um cliente do DynamoDB:

```
const AWS = require('aws-sdk')
// http or https
const https = require('https');
const agent = new https.Agent({
  keepAlive: true
});

const dynamodb = new AWS.DynamoDB({
  httpOptions: {
    agent
  }
});
```

Se o `keepAlive` estiver habilitado, você também poderá definir o atraso inicial para pacotes TCP Keep-alive com `keepAliveMsecs` que, por padrão, é 1000 ms. Consulte a [documentação do Node.js](https://nodejs.org/api/http.html) para obter detalhes.