我的DynamoDb连接每次都关闭吗



我试图了解每次执行命令时Dynamodb连接是否关闭

const dboperation1 = async(param) =>{
const docClient = new AWS.DynamoDB.DocumentClient();
const result = await docClient.query(params).promise();
return result
}

考虑到上面的例子,每次我调用dboperation1时,都会首先建立到DynamoDb的连接。

如果是这样的话,我如何保持一些连接已经打开,这样我就可以很容易地使用它们来查询数据库,从而避免设置连接所花费的额外时间?基本上是为了避免最初的握手。

来自文档:

默认情况下,默认的Node.js HTTP/HTTPS代理会创建一个新的TCP每个新请求的连接。为了避免建立新连接,您可以重用现有连接。

所有AWS SDK调用都使用http连接。我们只需要构建一个keepAlive代理,并在初始化客户端时将其传递给httpOptions。这适用于所有其他AWS SDK客户端,而不仅仅是DynamoDB。

const agent = new https.Agent({
keepAlive: true
});

这是的文档

以下是示例

import { Agent as httpsAgent } from 'https';
import AWS from 'aws-sdk';
var docClient = new DB.DocumentClient({
httpOptions: {
connectTimeout: 4000,
agent: new httpsAgent({ keepAlive: true }),
},
logger: console,
apiVersion: '2012-08-10',
convertEmptyValues: true,
});

最新更新