DynamoDB
Default profile points to staging account (468036072962, us-east-1).
Quick Reference
# List all tables
aws dynamodb list-tables --output table
# Describe a table (schema, GSIs, stream, item count)
aws dynamodb describe-table --table-name staging-EcomIndexSettingsTable
# Scan first N items
aws dynamodb scan --table-name staging-EcomIndexSettingsTable --max-items 5
# Query by partition key
aws dynamodb query --table-name staging-EcomIndexSettingsTable \
--key-condition-expression "pk = :pk" \
--expression-attribute-values '{":pk": {"S": "fnqm9psx"}}'
# Query with sort key prefix
aws dynamodb query --table-name staging-EcomIndexSettingsTable \
--key-condition-expression "pk = :pk AND begins_with(sk, :skp)" \
--expression-attribute-values '{":pk": {"S": "fnqm9psx"}, ":skp": {"S": "INDEX#"}}'
# Query a GSI
aws dynamodb query --table-name staging-EcomIndexerJobsTable \
--index-name GSI_JobLookup \
--key-condition-expression "job_id = :jid" \
--expression-attribute-values '{":jid": {"S": "some-job-id"}}'
# Check DynamoDB Streams (for settings exporter issues)
aws dynamodbstreams list-streams --table-name staging-EcomIndexSettingsTable
Table Naming Convention
{env_prefix}-{TableName} where env_prefix is:
- Dev:
dev-{branch}(e.g.,dev-oliver-EcomIndexSettingsTable) - Staging:
staging - Preprod:
preprod - Prod:
prod(account023568249301)
Exception: UsersAccountsTable has no prefix in staging (shared globally).
Parsing DynamoDB Output
# Human-readable scan output
aws dynamodb scan --table-name staging-ShopifyEntitiesTable --max-items 5 \
--output json | python3 -c "
import sys, json
for i in json.load(sys.stdin).get('Items', []):
print({k: list(v.values())[0] for k, v in i.items()})
"
What to Look For
| Symptom | Check |
|---|---|
| Missing index settings | Scan EcomIndexSettingsTable for the account's pk |
| Stale KV data | Check stream status on EcomIndexSettingsTable (settings exporter reads the stream) |
| Indexing job stuck | Query EcomIndexerJobsTable GSI_JobsByStatus for the shop_id |
| Missing user/account | Scan UsersAccountsTable for the pk |
| Fork not progressing | Query IndexForksTable for the account pk |
| Merchandising not syncing | Scan MerchandisingTable for the account pk |