Skip to content

Latest commit

 

History

History

lambda-powertools-dynamodb-client

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 
 
 
 
 
 
 

lambda-powertools-dynamodb-client

DynamoDB client wrapper that knows how to forward correlation IDs (captured via @dazn/lambda-powertools-correlation-ids).

Main features:

  • auto-injects correlation IDs into the DynamoDB item(s) so they are available in the DynamoDB Stream

  • direct replacement for AWS.DynamoDB.Document client

Getting Started

Install from NPM: npm install @dazn/lambda-powertools-dynamodb-client

API

It's exactly the same as the DynamoDB Document client from the AWS SDK.

const DynamoDB = require('@dazn/lambda-powertools-dynamodb-client')

await DynamoDB.put({
  TableName: 'table-name',
  Item: {
    Id: 'theburningmonk'
  }
}).promise()

await DynamoDB.update({
  TableName: 'table-name',
  Key: { Id: 'theburningmonk' },
  UpdateExpression: 'SET #url = :url',
  ExpressionAttributeNames: {
    '#url': 'url'
  },
  ExpressionAttributeValues: {
    ':url': 'https://theburningmonk.com'
  }
}).promise()

await DynamoDB.batchWrite({
  RequestItems: {
    ['table-name']: [
      {
        DeleteRequest: {
          Key: { Id: 'theburningmonk' }
        }
      },
      {
        PutRequest: {
          Item: {
            Id: 'theburningmonk'
          }
        }
      }
    ]
  }
}).promise()

await DynamoDB.transactWrite({
  TransactItems: [
    {
      Put: {
        TableName: 'table-name',
        Item: {
          Id: 'theburningmonk'
        }
      }
    },
    {
      Update: {
        TableName: tableName,
        Key: { Id: 'theburningmonk' },
        UpdateExpression: 'SET #url = :url',
        ExpressionAttributeNames: {
          '#url': 'url'
        },
        ExpressionAttributeValues: {
          ':url': 'https://theburningmonk.com'
        }
      }
    }
  ]
}).promise()