1.0.27 • Published 6 years ago

dynamodb-util v1.0.27

Weekly downloads
2
License
ISC
Repository
github
Last release
6 years ago

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.

1.0.27

6 years ago

1.0.26

6 years ago

1.0.25

6 years ago

1.0.24

7 years ago

1.0.23

7 years ago

1.0.22

7 years ago

1.0.21

7 years ago

1.0.20

7 years ago

1.0.19

7 years ago

1.0.18

7 years ago

1.0.17

7 years ago

1.0.16

7 years ago

1.0.15

7 years ago

1.0.14

7 years ago

1.0.13

7 years ago

1.0.12

7 years ago

1.0.11

7 years ago

1.0.10

7 years ago

1.0.9

7 years ago

1.0.8

7 years ago

1.0.7

7 years ago

1.0.6

7 years ago

1.0.5

7 years ago

1.0.4

7 years ago

1.0.3

7 years ago

1.0.2

7 years ago

1.0.1

7 years ago

1.0.0

7 years ago