Skip to main content

CDK Constructs for AWS DynamoDB

Project description

Amazon DynamoDB Construct Library

---

Stability: Stable


Here is a minimal deployable DynamoDB table definition:

# Example may have issues. See https://github.com/aws/jsii/issues/826
import aws_cdk.aws_dynamodb as dynamodb

table = dynamodb.Table(self, "Table",
    partition_key={"name": "id", "type": dynamodb.AttributeType.STRING}
)

Keys

When a table is defined, you must define it's schema using the partitionKey (required) and sortKey (optional) properties.

Billing Mode

DynamoDB supports two billing modes:

  • PROVISIONED - the default mode where the table and global secondary indexes have configured read and write capacity.
  • PAY_PER_REQUEST - on-demand pricing and scaling. You only pay for what you use and there is no read and write capacity for the table or its global secondary indexes.
# Example may have issues. See https://github.com/aws/jsii/issues/826
import aws_cdk.aws_dynamodb as dynamodb

table = dynamodb.Table(self, "Table",
    partition_key={"name": "id", "type": dynamodb.AttributeType.STRING},
    billing_mode=dynamodb.BillingMode.PAY_PER_REQUEST
)

Further reading: https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/HowItWorks.ReadWriteCapacityMode.

Configure AutoScaling for your table

You can have DynamoDB automatically raise and lower the read and write capacities of your table by setting up autoscaling. You can use this to either keep your tables at a desired utilization level, or by scaling up and down at preconfigured times of the day:

Auto-scaling is only relevant for tables with the billing mode, PROVISIONED.

# Example may have issues. See https://github.com/aws/jsii/issues/826
read_scaling = table.auto_scale_read_capacity(min_capacity=1, max_capacity=50)

read_scaling.scale_on_utilization(
    target_utilization_percent=50
)

read_scaling.scale_on_schedule("ScaleUpInTheMorning",
    schedule=appscaling.Schedule.cron(hour="8", minute="0"),
    min_capacity=20
)

read_scaling.scale_on_schedule("ScaleDownAtNight",
    schedule=appscaling.Schedule.cron(hour="20", minute="0"),
    max_capacity=20
)

Further reading: https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/AutoScaling.html https://aws.amazon.com/blogs/database/how-to-use-aws-cloudformation-to-configure-auto-scaling-for-amazon-dynamodb-tables-and-indexes/

Amazon DynamoDB Global Tables

Please see the @aws-cdk/aws-dynamodb-global package.

Project details


Release history Release notifications | RSS feed

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

aws-cdk.aws-dynamodb-1.14.0.tar.gz (98.8 kB view details)

Uploaded Source

Built Distribution

aws_cdk.aws_dynamodb-1.14.0-py3-none-any.whl (96.1 kB view details)

Uploaded Python 3

File details

Details for the file aws-cdk.aws-dynamodb-1.14.0.tar.gz.

File metadata

  • Download URL: aws-cdk.aws-dynamodb-1.14.0.tar.gz
  • Upload date:
  • Size: 98.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/2.0.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/39.0.1 requests-toolbelt/0.9.1 tqdm/4.36.1 CPython/3.6.5

File hashes

Hashes for aws-cdk.aws-dynamodb-1.14.0.tar.gz
Algorithm Hash digest
SHA256 bb3d072118fd69c5ecf7728fedce018e822ec62589a5ae3239c9f606f4714e9d
MD5 1b7387e9c422a4fb68b5e960fde8b0d5
BLAKE2b-256 00e159bb12d6ac0cb7af030385c6e2012adaaa6167da7c35c961c5de5b4088f5

See more details on using hashes here.

File details

Details for the file aws_cdk.aws_dynamodb-1.14.0-py3-none-any.whl.

File metadata

  • Download URL: aws_cdk.aws_dynamodb-1.14.0-py3-none-any.whl
  • Upload date:
  • Size: 96.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/2.0.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/39.0.1 requests-toolbelt/0.9.1 tqdm/4.36.1 CPython/3.6.5

File hashes

Hashes for aws_cdk.aws_dynamodb-1.14.0-py3-none-any.whl
Algorithm Hash digest
SHA256 03321990fb14e78328482d629e4d823c4e44ccf62bfc62e3868e1d5b264930a9
MD5 b6d8c48d66b674366a05ddfae9dfe25e
BLAKE2b-256 a1d61faa91d3f34e5ebb6a46ca8c3a31140f0661faca10146e239242e9851bb5

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page