AWS CLI lets you control DynamoDB using simple commands in your terminal. It helps you create, read, update, and delete data without using a web console.
AWS CLI for DynamoDB
Start learning this pattern below
Jump into concepts and practice - no test required
aws dynamodb <command> [options]
<command> is the action you want, like create-table or put-item.
[options] are extra details like table name or item data.
aws dynamodb create-table --table-name MyTable --attribute-definitions AttributeName=Id,AttributeType=S --key-schema AttributeName=Id,KeyType=HASH --provisioned-throughput ReadCapacityUnits=5,WriteCapacityUnits=5
aws dynamodb put-item --table-name MyTable --item '{"Id": {"S": "123"}, "Name": {"S": "Alice"}}'aws dynamodb get-item --table-name MyTable --key '{"Id": {"S": "123"}}'This sequence creates a Students table with StudentId as the key, adds one student named John aged 21, then retrieves John's record.
aws dynamodb create-table --table-name Students --attribute-definitions AttributeName=StudentId,AttributeType=S --key-schema AttributeName=StudentId,KeyType=HASH --provisioned-throughput ReadCapacityUnits=1,WriteCapacityUnits=1 aws dynamodb put-item --table-name Students --item '{"StudentId": {"S": "S001"}, "Name": {"S": "John"}, "Age": {"N": "21"}}' aws dynamodb get-item --table-name Students --key '{"StudentId": {"S": "S001"}}'
Make sure AWS CLI is installed and configured with your AWS credentials before running commands.
JSON data for items must use DynamoDB data types like S for string and N for number.
Provisioned throughput settings control how much read/write capacity your table has.
AWS CLI lets you manage DynamoDB tables and data using simple terminal commands.
You can create tables, add items, and get items easily with the right commands.
Always format your data correctly and configure AWS CLI before use.
Practice
aws dynamodb list-tables do?Solution
Step 1: Understand the command purpose
The commandaws dynamodb list-tablesis designed to list existing tables, not modify or delete them.Step 2: Match command to action
Listing tables means showing all table names in your current AWS region and account.Final Answer:
It shows all DynamoDB tables in your AWS account and region. -> Option AQuick Check:
List tables = Show tables [OK]
- Confusing list-tables with delete-table
- Thinking it creates or updates tables
- Assuming it shows table data instead of names
Books with a primary key ISBN and a title attribute?Solution
Step 1: Identify correct command and parameters
The correct command to add an item isput-itemwith--table-nameand--itemparameters.Step 2: Check JSON format for item
The item must be a JSON string with attribute names and types, e.g., {"ISBN": {"S": "12345"}} where "S" means string type.Final Answer:
aws dynamodb put-item --table-name Books --item '{"ISBN": {"S": "12345"}, "Title": {"S": "Cloud Basics"}}' -> Option BQuick Check:
Put-item + correct JSON format = aws dynamodb put-item --table-name Books --item '{"ISBN": {"S": "12345"}, "Title": {"S": "Cloud Basics"}}' [OK]
- Using wrong command like add-item or insert-item
- Missing data types in JSON attributes
- Using --table instead of --table-name
aws dynamodb get-item --table-name Users --key '{"UserId": {"S": "user123"}}' --projection-expression "Name, Age"Assuming the table has an item with UserId 'user123', Name 'Alice', Age 30, and Email 'alice@example.com'.
Solution
Step 1: Understand get-item with projection-expression
The--projection-expressionlimits returned attributes to those listed, here "Name, Age".Step 2: Check expected output
Since Email is not in projection-expression, it will not be returned. Only Name and Age appear.Final Answer:
Returns only the Name and Age attributes of the item. -> Option DQuick Check:
Projection-expression filters attributes = Returns only the Name and Age attributes of the item. [OK]
- Assuming all attributes return by default
- Thinking projection-expression causes error
- Confusing projection-expression with filter-expression
aws dynamodb put-item --table-name Products --item '{"ProductId": "123", "Name": "Pen"}'What is the likely cause of the error?
Solution
Step 1: Check item JSON format requirements
DynamoDB requires attribute values to specify data types, e.g., {"S": "123"} for string.Step 2: Identify missing data types in JSON
The command uses plain strings without data types, causing a syntax error.Final Answer:
The item JSON is missing data types for attributes. -> Option AQuick Check:
Missing data types in item JSON causes error [OK]
- Ignoring data type syntax in item JSON
- Assuming --put-item is invalid command
- Not verifying table name correctness
Orders with a primary key OrderId (string) and a sort key OrderDate (string). Which AWS CLI command is correct?Solution
Step 1: Identify correct command syntax for create-table
The correct syntax uses--attribute-definitionswith AttributeName and AttributeType, and--key-schemawith AttributeName and KeyType (HASH for partition key, RANGE for sort key).Step 2: Check provisioned throughput format
Provisioned throughput requiresReadCapacityUnitsandWriteCapacityUnitswith numeric values.Final Answer:
aws dynamodb create-table --table-name Orders --attribute-definitions AttributeName=OrderId,AttributeType=S AttributeName=OrderDate,AttributeType=S --key-schema AttributeName=OrderId,KeyType=HASH AttributeName=OrderDate,KeyType=RANGE --provisioned-throughput ReadCapacityUnits=5,WriteCapacityUnits=5 -> Option CQuick Check:
Create-table syntax with attribute-definitions and key-schema = aws dynamodb create-table --table-name Orders --attribute-definitions AttributeName=OrderId,AttributeType=S AttributeName=OrderDate,AttributeType=S --key-schema AttributeName=OrderId,KeyType=HASH AttributeName=OrderDate,KeyType=RANGE --provisioned-throughput ReadCapacityUnits=5,WriteCapacityUnits=5 [OK]
- Using wrong flags like --table or --attributes
- Incorrect key schema format
- Wrong provisioned throughput parameter names
