DynamoDB createTable(如果不存在) [英] DynamoDB createTable if not exists
本文介绍了DynamoDB createTable(如果不存在)的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
Hi需要在DynamoDB上创建表。问题是,如果它存在,createTable
响应就是错误的。我怎么才能避免这种情况。因为我在发生错误时抛出通知,但在本例中,我不想这样做。
我不想比较错误代码,因为ResourceInUseException
对它来说太模糊了。另外,我认为首先发送DESCRIBE TABLE请求并不是一个合适的解决方案。
有没有办法createIfNotExists
?
推荐答案
既然您不喜欢describeTable(),那么我猜listTables()是您唯一的选择,例如
const tableName = // ...
const tablePromise = dynamodb.listTables({})
.promise()
.then((data) => {
const exists = data.TableNames
.filter(name => {
return name === tableName;
})
.length > 0;
if (exists) {
return Promise.resolve();
}
else {
const params = {
TableName: tableName,
// more params
};
return dynamodb.createTable(params).promise();
}
});
注意,如果您的表数超过100个,结果会被分页,您必须重复调用listTables()
,详情请参见api docs中的ExclusiveStartTableName
和LastEvaluatedTableName
。
这篇关于DynamoDB createTable(如果不存在)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文