如何在 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,您可以设置两个设置:create
和 waitForActive
。听起来您的 table 已完全创建、激活并准备就绪。
如果您将这两个设置都设置为 false
,这应该会如您所愿。
下面是一些代码示例:
const CatSchema = new dynamoose.Schema({"id": String, "age": Number});
const Cat = dynamoose.model("Cat", CatSchema, {
"create": false,
"waitForActive": false
});
我们正在使用 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,您可以设置两个设置:create
和 waitForActive
。听起来您的 table 已完全创建、激活并准备就绪。
如果您将这两个设置都设置为 false
,这应该会如您所愿。
下面是一些代码示例:
const CatSchema = new dynamoose.Schema({"id": String, "age": Number});
const Cat = dynamoose.model("Cat", CatSchema, {
"create": false,
"waitForActive": false
});