0

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

我们的应用程序是使用 nestjs-dynamoose的 Nest.js 应用程序,并部署为 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 中已经存在的表?

4

1 回答 1

1

对于模型,您可以设置两个设置:create& waitForActive。听起来您的表已完全创建、处于活动状态并准备就绪。

如果您将这两个设置都设置为false这应该可以按预期工作。

下面是一些代码的例子来实现这一点:

const CatSchema = new dynamoose.Schema({"id": String, "age": Number});
const Cat = dynamoose.model("Cat", CatSchema, {
    "create": false,
    "waitForActive": false
});
于 2021-03-19T20:22:15.747 回答