1.29.9 • Published 2 years ago

@buyerassist/dazn-lambda-powertools-dynamodb-client v1.29.9

Weekly downloads
-
License
MIT
Repository
-
Last release
2 years ago

lambda-powertools-dynamodb-client

DynamoDB client wrapper that knows how to forward correlation IDs (captured via @buyerassist/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 @buyerassist/dazn-lambda-powertools-dynamodb-client

API

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

const DynamoDB = require("@buyerassist/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();