DynamoDB Atomic Counter

JS
S
JavaScript

DynamoDB Atomic Counter using AWS Pilot. https://awspilot.github.io/dynamodb-oop/pages/init/

1// npm install @awspilot/dynamodb --save
2// yard add @awspilot/dynamodb
3
4// /dev/lambda/lib/counter/index.js
5const AWS = require('aws-sdk');
6AWS.config.update({ region: 'eu-central-1' });
7const Logger = require('../logger');
8const ddb = new AWS.DynamoDB({ apiVersion: '2012-10-08' });
9const DynamoDB = require('@awspilot/dynamodb')(ddb);
10
11const incrementCounter = () => {
12  const tableName = 'Counters_' + process.env.NODE_ENV || 'testing';
13  return DynamoDB.table(tableName)
14    .where('Name').eq('InvoiceCounter').return(DynamoDB.ALL_NEW).update({ Count: DynamoDB.add() })
15    .then((data) => {
16      Logger.log('Incremented counter in DynamoDB', data);
17      return data.Count;
18    }).catch((err) => {
19      Logger.error(err);
20    });
21}
22
23module.exports = incrementCounter;

Created on 7/3/2018