DocsAWS 101BlogServices

DynamoDB

Key-value + document store — tables, indexes, TTL, transactions, streams, PartiQL.

JSON-RPC (X-Amz-Target) multi-tenant 61 operations

Quick start

import boto3
ddb = boto3.client("dynamodb", endpoint_url="http://localhost:4566",
                   region_name="us-east-1",
                   aws_access_key_id="test", aws_secret_access_key="test")
ddb.create_table(TableName="t",
    KeySchema=[{"AttributeName":"pk","KeyType":"HASH"}],
    AttributeDefinitions=[{"AttributeName":"pk","AttributeType":"S"}],
    BillingMode="PAY_PER_REQUEST")
ddb.put_item(TableName="t", Item={"pk":{"S":"k1"},"data":{"S":"v1"}})

Supported operations

61 operations exposed by this service as of MiniStack 1.4.6. Extracted directly from the handler dispatch in the source module.

BatchExecuteStatement BatchGetItem BatchWriteItem CreateBackup CreateTable DeleteBackup DeleteItem DeleteResourcePolicy DeleteTable DescribeBackup DescribeContinuousBackups DescribeContributorInsights DescribeEndpoints DescribeExport DescribeImport DescribeKinesisStreamingDestination DescribeLimits DescribeStream DescribeTable DescribeTimeToLive DisableKinesisStreamingDestination EnableKinesisStreamingDestination EndTime ExecuteStatement ExecuteTransaction ExportArn ExportFormat ExportStatus ExportTableToPointInTime ExportType GetItem GetRecords GetResourcePolicy GetShardIterator ImportArn ImportStatus ImportTable ListBackups ListContributorInsights ListExports ListImports ListStreams ListTables ListTagsOfResource PutItem PutResourcePolicy Query QueryFilter RestoreTableFromBackup RestoreTableToPointInTime Scan ScanFilter StartTime TagResource UntagResource UpdateContinuousBackups UpdateContributorInsights UpdateItem UpdateKinesisStreamingDestination UpdateTable UpdateTimeToLive

CloudFormation

The CloudFormation engine provisions these resource types via this service:

AWS::DynamoDB::Table

See CloudFormation engine for intrinsic support and lifecycle details.

Known limitations

  • Streams can be enabled on a table, but no stream records are produced — downstream Lambda triggers will not fire.
  • Global tables return successful responses but do not replicate across regions (local state is shared across regions within an account anyway).

Source

  • ministack/services/dynamodb.py

Read the source to verify the ops list above — dispatch tables and handler functions are the ground truth.