dynamodb-util
v1.0.27
Published
AWS DynamoDB utility in NodeJS to simplify working with the dynamodb data.
Downloads
29
Maintainers
Readme
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 [email protected].