我试图了解每次执行命令时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,
});