我正在使用Node中的以下Javascript删除DynamoDB中的表。
var params = {
TableName : "MyTable"
};
dynamodb.deleteTable(params, function(err, data) {
// Not really done yet...!
});
我需要知道该表何时被实际删除。回调并不表示这一点,因为在调用它时它仍处于删除过程中。有没有办法知道删除何时完成?
答案 0 :(得分:3)
waitFor
API可用于检查表格是否存在。
通过定期调用,等待tableNotExists状态 基础DynamoDB.describeTable()操作每20秒(at 最多25次)。
删除表并使用waitFor API检查表是否不存在的示例代码: -
var AWS = require("aws-sdk");
AWS.config.update({
region : "us-west-2",
endpoint : "http://localhost:8000"
});
var dynamodb = new AWS.DynamoDB();
var params = {
TableName : "country"
};
var paramsWaitFor = {
TableName : 'country' /* required */
};
function waitForTableNotExists() {
dynamodb.waitFor('tableNotExists', paramsWaitFor, function(waitForErr,
waitForData) {
if (waitForErr) {
console.log(waitForErr, waitForErr.stack); // an error occurred
} else {
console.log('Deleted ====>', JSON.stringify(waitForData, null, 2));
}
});
}
dynamodb.deleteTable(params, function(err, data) {
if (err) {
console.error("Unable to delete table. Error JSON:", JSON.stringify(
err, null, 2));
} else {
console.log("Deleted table. Table description JSON:", JSON.stringify(
data, null, 2));
waitForTableNotExists();
}
});