假设您正在使用express和传入请求开发服务器端应用程序,您必须访问DynamoDb并检索某些内容。问题是,何时是实例化DynamoDb连接的正确时间:
const dynamodb = new AWS.DynamoDB({
region: process.env.AWS_DEFAULT_REGION,
});
const docClient = new AWS.DynamoDB.DocumentClient({ service: dynamodb });
我是否应该为所有API处理程序执行此操作,还是应该为每个传入请求创建新连接?
答案 0 :(得分:2)
作为最佳做法,建议在函数外部声明DocumentClient
。但请注意,DocumentClient
不是数据库连接对象。 DocumentClient只是AWS.DynamoDB
命名空间中的抽象。文档客户端抽象使用AWS SDK for JavaScript更轻松地读取和写入数据到Amazon DynamoDB。
与RDBMS连接不同,不需要维护连接或连接池以连接到DynamoDB数据库。
DynamoDB是一种Web服务,与它的交互是无状态的。 应用程序不需要维护持久的网络连接。 相反,使用HTTP(S)请求和DynamoDB进行交互 响应。
新的AWS.DynamoDB(options = {})⇒对象
服务对象AWS.DynamoDB
使用异步请求将数据发送到DynamoDB。 DocumentClient
也在内部使用此服务对象。
默认情况下,SDK会向DynamoDB发送异步HTTP请求。但是,您可以通过将属性httpOptions.xhrAsync
设置为false来更改默认行为。