如何在 Dynamoose.js 中使用现有的 DynamoDB 表

How to use existing DynamoDB tables in Dynamoose.js

我们正在使用 terraform 在 AWS 中创建 DynamoDB 表。

我们的应用程序是一个 Nest.js 应用程序,使用 nestjs-dynamoose 并部署为 Lambda 函数。 lambda 函数启动时没有任何错误。 dynamoose 中的创建选项设置为 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,您可以设置两个设置:createwaitForActive。听起来您的 table 已完全创建、激活并准备就绪。

如果您将这两个设置都设置为 false,这应该会如您所愿。

下面是一些代码示例:

const CatSchema = new dynamoose.Schema({"id": String, "age": Number});
const Cat = dynamoose.model("Cat", CatSchema, {
    "create": false,
    "waitForActive": false
});