问题描述
我们正在使用 terraform 在 AWS 中创建 DynamoDB 表。
我们的应用程序是一个 nest.js 应用程序,使用 nestjs-dynamoose 并部署为 Lambda 函数。 lambda 函数启动时没有任何错误。 dynamoose 中的 create 选项设置为 false。
当试图访问创建的表时 this.model.get([...]) 永远不会完成:
const user = await this.model.get({id: instanceId});
console.log(user);
if (user) {
return await this.model.update({
value: token,id: instanceId,});
} else {
return await this.model.create({id: instanceId,value: token});
}
如果我们不使用 terraform 创建表并让 dynamoose 创建表,一切都会顺利进行。
我们如何使用来自 dynamoose 的现有表?
解决方法
对于 Models,您可以设置两个设置:create
和 waitForActive
。听起来您的表格已完全创建、处于活动状态且可以使用。
如果您将这两个设置都设置为 false
,这应该会如您所愿。
以下是实现此目的的一些代码示例:
const CatSchema = new dynamoose.Schema({"id": String,"age": Number});
const Cat = dynamoose.model("Cat",CatSchema,{
"create": false,"waitForActive": false
});