我正在使用Dynamodb进行api服务.我开始编写测试,发现没有命令(或查询)破坏表中的所有“项”.我正在使用vogels访问dynamodb.
我经常在每次测试前清理桌子.鉴于没有删除表中所有项的单个命令(或查询),我该怎么做?
如果我逐个删除每个项目,测试将在删除所有项目之前开始执行.
最佳答案 CRUD操作在DynamoDB中是原子操作.没有可用于删除DynamoDB表中所有项目的API.
解决方案1:
建议的最佳解决方案是删除表并重新创建它.
解决方案2:
将batchWriteItem与DeleteRequest一起使用可以一次删除多个项目.批量写入的最大请求数为25个项目.
等待:-
执行删除表后,请等待资源不可用.同样,在执行create table之后,您需要等到资源可用.
var params = {
TableName: 'STRING_VALUE' /* required */
};
dynamodb.waitFor('tableNotExists', params, function(err, data) {
if (err) console.log(err, err.stack); // an error occurred
else console.log(data); // successful response
});
Waits for the tableNotExists state by periodically calling the
underlying DynamoDB.describeTable() operation every 20 seconds (at
most 25 times).