dynamodb-util

1.0.27 • Public • Published

dynamodb-util

AWS DynamoDB utility in NodeJS to simplify working with the dynamodb data.

Replication

A helper class is provided with this utilty, using this you can easily setup dynamoDB replication using AWS lambda function.

Setup

  • Streams: Enable DynamoDB streams with new and old image.
  • Create Node Project: Create a node project with the below code snippet or download the example project form the github (Make sure you have dynamodb-util package installed locally and available in the node_modules).
  • Update target details: Update the code with the target table name and aws credentails.
  • Packaging: Compress (.zip) the entire project including the node_modules.
  • Create and deploy AWS Lambda Function: Create a AWS lambda function with the above created package.
  • Setup Triggers: Add triggers to invoke from DynamoDB Stream.
const ddbutil = require("dynamodb-util").replication;
 
module.exports.handler = (event, context, callback) => {
    var config = {
        "tableName": "<<TableName>>",
        "aws": {
            "accessKeyId": "<<accessKeyId>>",
            "secretAccessKey": "<<secretAccessKey>>",
            "region": "<<region>>"
        }
    }
    ddbutil.sync(config, event, callback);
}

Util

A command line utility to backup dynamoDB to another dynamoDB table or to a JSON file.

Installation

Typically you would use this as command line utility.

npm install -g dynamodb-util

Command

dynamodb-util --config .\config.json --command  listtables

Note: Use absolute path while specifying the config.json

List of supported commands

  • listtables
  • listrecords
  • describe
  • backup

Config file format

Type1

Backup from DynamoDB to JSON file

{
    "source": {
        "type": "dynamoDB",
        "tableName": "<<TableName>>",
        "aws": {
            "accessKeyId": "<<accessKeyId>>",
            "secretAccessKey": "<<secretAccessKey>>",
            "region": "<<region>>"
        }
    },
    "target": {
        "type": "json",
        "path": "./backup.json"
    }
}

Type2

Backup from DynamoDB to DynamoDB

{
    "source": {
        "type": "dynamoDB",
        "tableName": "<<TableName>>",
        "aws": {
            "accessKeyId": "<<accessKeyId>>",
            "secretAccessKey": "<<secretAccessKey>>",
            "region": "<<region>>"
        }
    },
    "target": {
        "type": "dynamoDB",
        "mode": "create",
        "tableName": "<<TableName>>",
        "aws": {
            "accessKeyId": "<<accessKeyId>>",
            "secretAccessKey": "<<secretAccessKey>>",
            "region": "<<region>>"
        }
    }
}

Target group supports 2 modes

  • create
  • append

Use create mode if you want to create a the backup table with the excaly replica of source with keys, GSI (Global Seconday Index) and LSI (Local Secondary Index).

And use append mode if you already have a table and just want to copy the data from source to target table.

Contact Us

We are happy to help where we can, please feel free to contact via twitter @vizvastudio or email at athaseen@vizvastudio.com.

Package Sidebar

Install

npm i dynamodb-util

Weekly Downloads

18

Version

1.0.27

License

ISC

Last publish

Collaborators

  • vizvastudio