npm

npm’s 2019 JavaScript ecosystem survey analysis is now available! Get your copy here »

serverless-plugin-dynamo-autoscaling

1.0.1 • Public • Published

⚡️ Serverless Plugin for DynamoDB Auto Scaling

Build Status Coverage Status npm GitHub license dependencies Status

Serverless Plugin to enable autoscaling for dynamodb tables and its GSI.

Installation

# Via yarn 
$ yarn add serverless-plugin-dynamo-autoscaling
 
# Via npm 
$ npm install serverless-plugin-dynamo-autoscaling

Add the plugin to your serverless.yml:

plugins:
  - serverless-plugin-dynamo-autoscaling

Configuration

custom:
  autoscaling:
    table: CustomTable  # DynamoDB Resource 
      index:              # List or single index name - Optional 
        - custom-index-name
      roleArn:            # Arn of the role to be associated - Optional 
      read:
        minimum: 5        # Minimum read capacity 
        maximum: 1000     # Maximum read capacity 
        targetUsage: 75   # Targeted usage percentage 
      write:
        minimum: 40       # Minimum write capacity 
        maximum: 200      # Maximum write capacity 
        targetUsage: 50   # Targeted usage percentage 

Defaults

maximum: 200
minimum: 5
targetUsage: 75

If no roleArn is specified, plugin will automatically create one and use it.

Index Only

If you only want to enable Auto Scaling for the index, use indexOnly: true to skip Auto Scaling for the general DynamoDB table.

DynamoDB

The example serverless configuration above works fine for a DynamoDB table CloudFormation resource like this:

resources:
  Resources:
    CustomTable:
      Type: AWS::DynamoDB::Table
      Properties:
        TableName: custom-table
        AttributeDefinitions:
          AttributeName: key
            AttributeType: S
        KeySchema:
          AttributeName: key
            KeyType: HASH
        ProvisionedThroughput:
          ReadCapacityUnits: 5
          WriteCapacityUnits: 5
        GlobalSecondaryIndexes:
          IndexName: custom-index-name
            KeySchema:
              AttributeName: key
                KeyType: HASH
            Projection:
              ProjectionType: ALL
            ProvisionedThroughput:
              ReadCapacityUnits: 5
              WriteCapacityUnits: 5

Thanks

License

Feel free to use the code, it's released using the MIT license.

install

npm i serverless-plugin-dynamo-autoscaling

Downloadsweekly downloads

5

version

1.0.1

license

MIT

homepage

github.com

repository

Gitgithub

last publish

collaborators

  • avatar
Report a vulnerability