2016-11-18 11 views
1

ノード内の次のJavascriptを使用してDynamoDBでテーブルを削除しています。DynamoDBテーブルの完全な状態を削除します

var params = { 
    TableName : "MyTable" 
}; 

dynamodb.deleteTable(params, function(err, data) { 
    // Not really done yet...! 
}); 

テーブルが実際に削除された時期を知る必要があります。これがコールされたときに削除処理中であるため、コールバックはこれを示しません。削除が完了したときを知る方法はありますか?

答えて

2

waitFor APIを使用すると、テーブルが存在しないかどうかを確認できます。

tableNotExists状態を待ち、定期的に 基礎となるDynamoDB.describeTable()操作ごとに20秒( ほとんど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(); 

    } 
}); 
+0

うわー、ビルドサーバー上の私の首を救いました。ありがとう。 –

関連する問題