少し力技なところもあるけど、作成したのでシェア。

ソースコード

batch/deleteDynamoDBAllTable.js

/**
 *  DynamoDBの全テーブルを一括で削除
 */
const AWS = require('aws-sdk');
const ddb = new AWS.DynamoDB({
  region: 'ap-northeast-1'
});
const credentials = new AWS.SharedIniFileCredentials({
  profile: 'mura-kumo',
  filename: '~/.aws/credentials'
});
AWS.config.credentials = credentials;
AWS.config.update({
  region: 'ap-northeast-1',
  endpoint: 'https://dynamodb.ap-northeast-1.amazonaws.com'
});

const prefix = process.argv[2];

const tables = [
  `${prefix}-User`,
  `${prefix}-Product`
];

Promise.all(
  tables.map(async (tableName) => {
    console.log({ TableName: tableName });
    return ddb.deleteTable({ TableName: tableName }, function (err, data) {
      if (err) {
        return (
          'Unable to delete table. Error JSON:', JSON.stringify(err, null, 2)
        );
      }
      return (
        'Deleted table. Table description JSON:', JSON.stringify(data, null, 2)
      );
    });
  })
)
  .then(console.log)
  .catch(console.error);

実行方法

プロファイルは適宜変更ください。

AWS_SDK_LOAD_CONFIG=true AWS_PROFILE=example-profile node batch/deleteDynamoDBAllTable.js dev

どんな時に使用する?

よく使用するケースとしては、ServerllesFrameworkもしくはCloudFormation直書きの時に、テーブルのPK、SK定義を変更しデプロイしたくなった時です。もちろんステージングもしくは開発環境専用ですけどね・・。