AWS DynamoDB integration

NoSQL database: tables, items, queries, scans, batch and transactional operations

Help CentreConnectors

Overview

Amazon DynamoDB is AWS's managed NoSQL key-value + document database. The Automize AWS DynamoDB connector covers item CRUD (Get/Put/Update/ Delete), Query + Scan, batch + transaction operations, and table lifecycle.

  • Regions: DynamoDB is regional. Global Tables (multi-region replicas) need separate setup.
  • Plans: On-demand (pay-per-request) or Provisioned (capacity units, with optional auto-scaling). Free tier 25 GB storage + 25 WCU/RCU.

Setting up the connection

Auth type: aws_sigv4.

  1. AWS Console → IAM → user with programmatic access.
  2. Attach AmazonDynamoDBFullAccess or scoped table-level permissions.
  3. In Automize, open Settings → Connectors → AWS DynamoDB → Add connection. Paste keys + region.

Find your credentials at https://us-east-1.console.aws.amazon.com/iam/home.


Rate limits

Per-table capacity. On-demand auto-scales; provisioned uses RCU (reads) + WCU (writes). Connector retries ProvisionedThroughputExceededException with backoff.


Data model

Items in tables – key-value model:

    Table ─── Items ─── Attributes (key-value pairs, schemaless beyond the key)
            ├─ Partition Key (required, hashable)
            ├─ Sort Key (optional, range within partition)
            ├─ Secondary Indexes (GSI: alt partition key, LSI: alt sort key)
            └─ Streams (change data capture, optional)

Available operations

15 operations available. Click any row to jump to its detail.

OperationCategoryWhat it does
Batch Get ItemGeneralGet multiple items from one or more tables
Batch Write ItemGeneralPut or delete multiple items across tables
Create TableGeneralCreate a new DynamoDB table
Delete ItemGeneralDelete an item by primary key
Delete TableGeneralDelete a DynamoDB table
Describe TableGeneralGet table metadata and status
Get ItemGeneralGet an item by primary key
List TablesGeneralList all DynamoDB tables
Put ItemGeneralCreate or replace an item in a table
QueryGeneralQuery items using key conditions and optional filters
ScanGeneralScan all items in a table with optional filters
Transact Get ItemsGeneralAtomic read transaction across multiple items
Transact Write ItemsGeneralAtomic write transaction across multiple items
Update ItemGeneralUpdate attributes of an item
Update TableGeneralUpdate table settings (throughput, GSI, etc.)

Operations

Batch Get Item

Get multiple items from one or more tables

No input parameters.

Tips

  • Up to 100 items across multiple tables. Returns UnprocessedKeys to retry.

Batch Write Item

Put or delete multiple items across tables

No input parameters.

Tips

  • Up to 25 put/delete ops across tables in one call. NOT atomic – partial success possible.

Create Table

Create a new DynamoDB table

No input parameters.

Tips

  • TableName + KeySchema (PK + optional SK) + AttributeDefinitions + BillingMode (PAY_PER_REQUEST or PROVISIONED).
  • GlobalSecondaryIndexes[] for additional access patterns.

Delete Item

Delete an item by primary key

No input parameters.

Tips

  • By primary key. ConditionExpression for safe deletes.

Delete Table

Delete a DynamoDB table

No input parameters.

Tips

  • Hard-delete. Items + indexes + streams all gone. Cannot be undone.

Describe Table

Get table metadata and status

No input parameters.

Tips

  • Returns full table metadata – key schema, indexes, throughput settings, item count, status.

Get Item

Get an item by primary key

No input parameters.

Tips

  • TableName + Key (full primary key – PK + SK if composite).
  • ProjectionExpression to fetch only some attributes.
  • ConsistentRead=true for strongly-consistent reads (2× cost).

List Tables

List all DynamoDB tables

No input parameters.

Tips

  • Returns table names. Pages 100 per call.

Put Item

Create or replace an item in a table

No input parameters.

Tips

  • Replaces the entire item if PK matches. ConditionExpression for optimistic locking.
  • Each attribute typed: {S: 'string'}, {N: '123'}, {BOOL: true}, etc.

Query

Query items using key conditions and optional filters

No input parameters.

Tips

  • Key-only query – uses partition key (and optional sort key range). FAST.
  • KeyConditionExpression: '#pk = :pk AND #sk BETWEEN :a AND :b'.
  • Use GSI for alternative access patterns: IndexName='YourGSI'.

Scan

Scan all items in a table with optional filters

No input parameters.

Tips

  • Reads entire table. SLOW + expensive for big tables.
  • FilterExpression filters AFTER scan (doesn't save capacity).
  • Only use for small tables or one-off jobs – design for Query.

Transact Get Items

Atomic read transaction across multiple items

No input parameters.

Tips

  • Atomic read across up to 100 items. 2× cost vs Get.

Transact Write Items

Atomic write transaction across multiple items

No input parameters.

Tips

  • Atomic write across up to 100 items. All succeed or all fail. 2× cost vs Put.

Update Item

Update attributes of an item

No input parameters.

Tips

  • Partial update via UpdateExpression: 'SET attr = :val ADD count :inc'.
  • Preferred over Put when you don't want to replace the whole item.

Update Table

Update table settings (throughput, GSI, etc.)

No input parameters.

Tips

  • Modify throughput, add/remove GSI, enable streams.
  • Throughput updates take minutes to provision.

FAQ

On-Demand vs Provisioned?
On-Demand: pay per request, auto-scales, simpler, costs more per request. Provisioned: cheaper per request but you pay even idle, capacity caps, can throttle. Use On-Demand unless steady high traffic.
Query vs Scan?
Query is by partition key (or GSI key) – uses index, fast, cheap. Scan reads the whole table – slow, expensive. Design tables so Query covers your access patterns.
Eventual vs strong consistency?
Eventual (default): may return stale data for ~1 sec, 1× cost. Strong (ConsistentRead=true): always latest, 2× cost. Cross-region/GSI reads are always eventual.
Why is my Put-Item silently overwriting?
Put replaces by key. Use Update Item (partial) or add ConditionExpression: 'attribute_not_exists(pk)' to fail if key exists.

Related connectors

See it working on your own data

Everything documented here ships with the platform – try the document tools free, or go live in 7 days.