【发布时间】:2018-05-15 10:14:27
【问题描述】:
我使用 DynamoDB DocumentClient 使用 Class: AWS.DynamoDB.DocumentClient 删除多个表上的项目
问题是,当我尝试使用 promised.all() 删除多个表时,它运行并没有删除该项目,但没有从 AWS 返回任何异常。我在想是因为我没有兑现承诺?
另外,在 DynamoDB 页面上,它提到写入容量为:
一个写入容量单位表示每秒一次写入的项目 大小为 1 KB。如果你需要写一个大于 1 的项目 KB,DynamoDB 将需要消耗额外的写入容量单位。这 所需的写入容量单位总数取决于项目 大小。
如果我的每个item是0.4KB,我想删除1000个item,就是400KB,那么我应该设置写容量单位是400还是1000? (如果我根本没有延迟请求)。
return Promise.all([deleteItemOnTable(table1), deleteItemOnTable(table2)]);
var documentClient = new AWS.DynamoDB.DocumentClient();
function deleteItemOnTable(tablePramas, dataToBeDeleted){
var params = {
TableName : 'TableName',
Key: {
HashKey: 'hashkey',
NumberRangeKey: 1
}
};
dataToBeDeleted.forEach(item=>
var chain = Promise.resolve();
chain = chain.
then(()=>{
documentClient.delete(params, function(err, data) {
if (err) console.log(err);
else console.log(data);
});
}).then(() => delay(10));
}
);
【问题讨论】:
标签: javascript node.js amazon-web-services amazon-dynamodb