Skip to content

Fork for aws dynamodb until maintainer get's of their ass and merges things

License

Notifications You must be signed in to change notification settings

engineerapart/aws-dynamodb

Repository files navigation

aws-dynamodb

Easily provision AWS DynamoDB tables using Serverless Components.

 

  1. Install
  2. Create
  3. Configure
  4. Deploy

 

1. Install

$ npm install -g serverless

2. Create

Just create a serverless.yml file

$ touch serverless.yml
$ touch .env      # your AWS api keys
# .env
AWS_ACCESS_KEY_ID=XXX
AWS_SECRET_ACCESS_KEY=XXX

3. Configure

# serverless.yml

myTable:
  component: '@serverless/aws-dynamodb'
  inputs:
    name: nameOfTable # optional
    attributeDefinitions:
      - AttributeName: id
        AttributeType: S
    keySchema:
      - AttributeName: id
        KeyType: HASH
    region: us-east-1

With globalSecondaryIndexes and/or localSecondaryIndexes

# serverless.yml

myTable:
  component: '@serverless/aws-dynamodb'
  inputs:
    name: nameOfTable # optional
    attributeDefinitions:
      - AttributeName: id
        AttributeType: S
      - AttributeName: attribute1
        AttributeType: N
      - AttributeName: attribute2
        AttributeType: S
    keySchema:
      - AttributeName: id
        KeyType: HASH
      - AttributeName: attribute1
        KeyType: RANGE
    localSecondaryIndexes:
      - IndexName: 'myLocalSecondaryIndex'
        KeySchema:
         - AttributeName: id
           KeyType: HASH
         - AttributeName: attribute2
           KeyType: RANGE
        Projection:
           ProjectionType: 'KEYS_ONLY'
    globalSecondaryIndexes:
      - IndexName: 'myGlobalSecondaryIndex'
        KeySchema:
         - AttributeName: attribute2
           KeyType: HASH
        Projection:
           ProjectionType: 'KEYS_ONLY'
    region: us-east-1

The following applies to indexes:

  1. LocalIndexes can only be created upon table creation. There is no way to update them and/or create them other than at table creation.
  2. GlobalSecondaryIndexes can be created and removed during and after table creation. During an update, only one create and delete can happen at a time.
  3. This component uses PAY_PER_REQUEST, which makes any throughput update redundant, including for GlobalSecondaryIndexes.

4. Deploy

$ serverless

 

New to Components?

Checkout the Serverless Components repo for more information.

About

Fork for aws dynamodb until maintainer get's of their ass and merges things

Resources

License

Code of conduct

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published