A serverless plugin to automatically creates dynamodb global table(s).
By default, the plugin will deploy the whole service stack in the specified region(s) and then setup global table relation between the dynamodb tables.
npm install --save-dev serverless-create-global-dynamodb-table
Add the plugin to your serverless.yml
file:
plugins:
- serverless-create-global-dynamodb-table
custom:
globalTables:
version: v1 # optional, default is 'v1' (2017.11.29), please use 'v2' for (2019.11.21) version creation
regions: # list of regions in which you want to set up global tables
- region-1
- region-2
createStack: false # optional flag, when set to false will not deploy the stack in new region(s) and will create the tables using AWS SDK.
# if you use 'createStack: true' with 'version: v2', please add 'Condition' rule to your dynamodb to create it in the main region only,
# other regions are going to be replicated automatically from the main region.
NOTE:
- When creating global tables with
createStack: false
, any update the source table config is not replicated to global tables. version
field is backward compatible and not required (the field can be absent).
If you want to use Global Table (Version 2019.11.21), please useversion: v2
.
Also, we don't recommend usingv2
overv1
in your existing project. The plugin doesn't support updating fromv1
tov2
.
More details about Global Tables you can find in the following link: AWS DynamoDB Global Tables- Here is an example of using conditions, by default it's optional, but it's required for
createStack: true
withversion: v2
setup:
Conditions:
RegionUSEast1: !Equals [ !Ref "AWS::Region", us-east-1 ]
MyDynamoDBTable:
Condition: RegionUSEast1
Type: 'AWS::DynamoDB::Table'
DeletionPolicy: Retain
Properties:
....
- 2.0.0
- Updated the package to deploy the service stack in the new region(s) by default
- Added support to setup auto-scaling on global tables when not using create stack feature.
- Added unit-tests
- 2.1.0
- Added support for PAY_PER_REQUEST billing mode for
createStack: true
mode
- Added support for PAY_PER_REQUEST billing mode for
- 3.1.0
- Added support to create a new version of Global Table (Version 2019.11.21)