1.2.4 • Published 6 years ago

@stacksavings/dynamodb v1.2.4

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

Stacksavings - DynamoDB Client

Hemos creado un paquete "@stacksavings/dynamodb" para poder usar los metodos de interacción con la bade de datos DynamoDB.

Table of contents

Getting Started

Prerrequisitos

Cree un archivo de credenciales en ~/.aws/credentials en Mac/Linux o bien en C:\Users\USERNAME.aws\credentials en Windows.

[default]

aws_access_key_id = your_access_key
aws_secret_access_key = your_secret_key
region = your_region

Instalando

Para poder instalar el cliente solo basta con ejecutar el comando:

npm i @stacksavings/dynamodb

Uso

Para empezar a usarlo solo debe de incluirlo en tu código asi:

var dynamoDB = require('@stacksavings/dynamodb')
    dynamoDB = new dynamoDB()

Tambien se puede configurar el endpoint de la Base de Datos para que apunte a una instancia local o remota. Por defecto el endpoint esta local por el puerto 8000.

[Instancia local]

var dynamoDB = require('@stacksavings/dynamodb')
    dynamoDB = new dynamoDB({endpoint: 'http://localhost:8000'})
[Instancia remota]

var dynamoDB = require('@stacksavings/dynamodb')
      dynamoDB = new dynamoDB({endpoint: 'https://ec2.ap-southeast-1.amazonaws.com'})
java -Djava.library.path=./DynamoDBLocal_lib -jar DynamoDBLocal.jar -help
var dynamoDB = require('@stacksavings/dynamodb')
      dynamoDB = new dynamoDB({region: 'us-east-2'})
var dynamoDB = require('@stacksavings/dynamodb')
      dynamoDB = new dynamoDB({
                               endpoint: 'https://ec2.ap-southeast-1.amazonaws.com',
                               region: 'us-east-2'
                             })

Métodos

  • createTable:
var dynamoDB = require('@stacksavings/dynamodb')
    dynamoDB = new dynamoDB()
const logger = require('@stacksavings/utils').log()

const parameters = {
  TableName: "Test",
  KeySchema: [
              { AttributeName: "id", "KeyType": "HASH" }
    ],
  AttributeDefinitions: [
      { AttributeName: "id", "AttributeType": "S" }
    ],
  ProvisionedThroughput: {
      "ReadCapacityUnits": 100,
      "WriteCapacityUnits": 100
  }
}

const promise = dynamoDB.createTable(parameters)
promise.then(data => {
  logger.info(data)
}, err => {
  logger.error(err)
})

    Salida:

{
  code: true,
  message: "Table <TABLE NAME> created!",
  data: {
         "TableDescription":{
           "AttributeDefinitions":[
             {
              "AttributeName":"id",
              "AttributeType":"S"
             }
           ],
           "TableName":"Test",
           "KeySchema":[
           {
             "AttributeName":"id",
             "KeyType":"HASH"
           }
          ],
          "TableStatus":"CREATING",
          "CreationDateTime":"2018-01-15T00:47:17.262Z",
          "ProvisionedThroughput":{
            "NumberOfDecreasesToday":0,
            "ReadCapacityUnits":100,
            "WriteCapacityUnits":100
          },
          "TableSizeBytes":0,
          "ItemCount":0,
          "TableArn":"arn:aws:dynamodb:us-east-1:281171835363:table/Test",
          "TableId":"21f71a7a-dbc6-486a-b1ab-194f5944387c"
        }
      }
}
  • insertItems:
const uuid = require('uuid')
var dynamoDB = require('@stacksavings/dynamodb')
    dynamoDB = new dynamoDB()
const logger = require('@stacksavings/utils').log()

var timeStamp = String(Math.floor(Date.now() / 1000));
const parameters = {
  TableName: "Test",
  Item: {
      id: uuid.v1(),
      currencyPair: "BTC_ETH",
      timestamp: timeStamp
  }
}

const promise = dynamoDB.insertItems(parameters)
promise.then(data => {
  logger.info(data)
}, err => {
  logger.error(err)
})

    Salida:

{
  code: true,
  message: "Insert success!"
}
  • insertItemsBath:
const uuid = require('uuid')
var dynamoDB = require('@stacksavings/dynamodb')
    dynamoDB = new dynamoDB()
const logger = require('@stacksavings/utils').log()

var timeStamp = String(Math.floor(Date.now() / 1000));
const parameters = {
  RequestItems: {
      "Test": [
          {
            PutRequest: {
              Item: {
                  id: uuid.v1(),
                  currencyPair: "BTC_ETH",
                  timestamp: timeStamp
              }
            }
          },
          {
            PutRequest: {
              Item: {
                  id: uuid.v1(),
                  currencyPair: "BTC_ETH2",
                  timestamp: timeStamp
              }
            }
          },
          ...
        ]
  }
}

const promise = dynamoDB.insertItemsBath(parameters)
promise.then(data => {
  logger.info(data)
}, err => {
  logger.error(err)
})

    Salida:

{
  code: true,
  message: "Insert success!"
}
  • scanItems:
var dynamoDB = require('@stacksavings/dynamodb')
    dynamoDB = new dynamoDB()
const logger = require('@stacksavings/utils').log()

const parameters = {
  TableName: 'Test',
  AttributesToGet: [ "currencyPair", "id", ... ]
}

const promise = dynamoDB.scanItems(parameters)
promise.then(data => {
  logger.info(data)
}, err => {
  logger.error(err)
})

    Salida:

{
  code: true,
  message: "Scan done!",
  Items: <Field data>
}
  • getItems:
var dynamoDB = require('@stacksavings/dynamodb')
    dynamoDB = new dynamoDB()
const logger = require('@stacksavings/utils').log()

const parameters = {
      TableName: "Test",
      ProjectionExpression: "currencyPair",
      ExpressionAttributeNames:{
          "#id": "id"
      },
      ExpressionAttributeValues: {
        ':id': '1cedd7a0-fa26-11e7-81e3-23cdc36fe8fb'
      },
      KeyConditionExpression: '#id = :id'
    }

const promise = dynamoDB.getItems(parameters)
promise.then(data => {
  logger.info(data)
}, err => {
  logger.error(err)
})

    Salida:

{
  code: true,
  message: "Query done!",
  Items: <Field data>
}
  • deleteTable:
var dynamoDB = require('@stacksavings/dynamodb')
    dynamoDB = new dynamoDB()
const logger = require('@stacksavings/utils').log()

const parameters = {
  TableName: "Test"
}

const promise = dynamoDB.deleteTable(parameters)
promise.then(data => {
  logger.info(data)
}, err => {
  logger.error(err)
})

    Salida:

{
  code: true,
  message: "Table <TABLE NAME> deleted!",
  data: {
         "TableDescription":{
           "TableName":"Test",
           "TableStatus":"DELETING",
           "ProvisionedThroughput":{
             "NumberOfDecreasesToday":0,
             "ReadCapacityUnits":100,
             "WriteCapacityUnits":100
           },
           "TableSizeBytes":0,
           "ItemCount":0,
           "TableArn":"arn:aws:dynamodb:us-east-1:281171835363:table/Test",
           "TableId":"21f71a7a-dbc6-486a-b1ab-194f5944387c"
         }
        }
}

Creators

Stacksavings

  • https://site.stacksavings.com

David Molina

  • https://dmolina101.github.io

Hendrix Roa

  • Site hendrixroa
1.2.4

6 years ago

1.2.3

6 years ago

1.2.2

6 years ago

1.2.1

6 years ago

1.2.0

6 years ago

1.1.72

6 years ago

1.1.71

6 years ago

1.1.70

6 years ago

1.1.69

6 years ago

1.1.68

6 years ago

1.1.67

6 years ago

1.1.66

6 years ago

1.1.65

6 years ago

1.1.64

6 years ago

1.1.63

6 years ago

1.1.62

6 years ago

1.1.61

6 years ago

1.1.6

6 years ago

1.1.59

6 years ago

1.1.58

6 years ago

1.1.57

6 years ago

1.1.56

6 years ago

1.1.55

6 years ago

1.1.54

6 years ago

1.1.53

6 years ago

1.1.52

6 years ago

1.1.51

6 years ago

1.1.5

6 years ago

1.1.48

6 years ago

1.1.47

6 years ago

1.1.46

6 years ago

1.1.45

6 years ago

1.1.44

6 years ago

1.1.43

6 years ago

1.1.42

6 years ago

1.1.41

6 years ago

1.1.4

6 years ago

1.1.39

6 years ago

1.1.38

6 years ago

1.1.37

6 years ago

1.1.36

6 years ago

1.1.35

6 years ago

1.1.34

6 years ago

1.1.32

6 years ago

1.1.31

6 years ago

1.1.3

6 years ago

1.1.2

6 years ago

1.1.1

6 years ago

1.1.0

6 years ago

1.0.9

6 years ago

1.0.8

6 years ago

1.0.7

6 years ago

1.0.6

6 years ago

1.0.5

6 years ago

1.0.4

6 years ago

1.0.3

6 years ago

1.0.2

6 years ago

1.0.1

6 years ago

1.0.0

6 years ago