2016-11-18 1 views
1

Ich lösche eine Tabelle in DynamoDB mit dem folgenden Javascript in Node.DynamoDB löschen Tabelle vollständigen Status

var params = { 
    TableName : "MyTable" 
}; 

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

Ich muss wissen, wenn die Tabelle tatsächlich gelöscht wurde. Der Rückruf zeigt dies nicht an, da er beim Aufruf noch im Löschprozess ist. Gibt es eine Möglichkeit zu wissen, wann das Löschen abgeschlossen ist?

Antwort

2

Die API waitFor kann verwendet werden, um auf das Nichtvorhandensein der Tabelle zu prüfen.

Wartet die tableNotExists Zustand durch periodisches Aufruf der zugrunde liegenden DynamoDB.describeTable() -Vorgang alle 20 Sekunden (bei höchstens 25-mal).

Beispielcode, um die Tabelle zu löschen und prüfen, ob die Nicht-Existenz von Tabelle 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

Wow, meinen Hals auf Build-Server gespeichert. Vielen Dank. –

Verwandte Themen