aws-dynamodb
Easily provision AWS DynamoDB tables using Serverless Components.
- Install
- Create
- Configure
- Deploy
1. Install
$ npm install -g serverless
2. Create
Just create a serverless.yml
file
$ touch serverless.yml
$ touch .env
# .env
AWS_ACCESS_KEY_ID=XXX
AWS_SECRET_ACCESS_KEY=XXX
3. Configure
myTable:
component: '@serverless/aws-dynamodb'
inputs:
name: nameOfTable
attributeDefinitions:
- AttributeName: id
AttributeType: S
keySchema:
- AttributeName: id
KeyType: HASH
region: us-east-1
With globalSecondaryIndexes and/or localSecondaryIndexes
myTable:
component: '@serverless/aws-dynamodb'
inputs:
name: nameOfTable
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:
- LocalIndexes can only be created upon table creation. There is no way to update them and/or create them other than at table creation.
- GlobalSecondaryIndexes can be created and removed during and after table creation. During an update, only one create and delete can happen at a time.
- 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.