Creating a table in the AWS CLI
Written by
Updated at January 30, 2024
AWS CLI
Warning
To work with the AWS CLI from Windows, we recommend using the WSL
If you do not have the AWS CLI yet, install and configure it.
To create a series table with a partitioning key by series number and sort key by series name:
-
Prepare the Document API endpoint and specify it:
endpoint=<your_DB_endpoint>
-
Run this command:
aws dynamodb create-table \ --table-name <table_name> \ --attribute-definitions \ AttributeName=<series_number>,AttributeType=N \ AttributeName=<series_name>,AttributeType=S \ AttributeName=<series_description>,AttributeType=S \ AttributeName=<series_release_date>,AttributeType=S \ --key-schema \ AttributeName=<series_number>,KeyType=HASH \ AttributeName=<series_name>,KeyType=RANGE \ --endpoint $endpoint
Where:
--table-name
: Table name.--attribute-definitions
: Description of element attributes.AttributeName
: Attribute name.AttributeType
: Attribute type:N
:Number
type.S
:String
type.B
:Binary
type.
--key-schema
: Key schema for the table.AttributeName
: Name of the key attribute.KeyType
: Key type:HASH
: Partitioning key.RANGE
: Sort key.
The
key-schema
attributes should also be defined in theattribute-definitions
array.
Example
To create a table named series
with the series_id
partition key and the title
sort key:
endpoint="your-database-endpoint"
aws dynamodb create-table \
--table-name series \
--attribute-definitions \
AttributeName=series_id,AttributeType=N \
AttributeName=title,AttributeType=S \
AttributeName=series_info,AttributeType=S \
AttributeName=release_date,AttributeType=S \
--key-schema \
AttributeName=series_id,KeyType=HASH \
AttributeName=title,KeyType=RANGE \
--endpoint $endpoint
Result:
{
"TableDescription": {
"AttributeDefinitions": [
{
"AttributeName": "series_id",
"AttributeType": "N"
},
{
"AttributeName": "title",
"AttributeType": "S"
},
{
"AttributeName": "series_info",
"AttributeType": "S"
},
{
"AttributeName": "release_date",
"AttributeType": "S"
}
],
"TableName": "series",
"KeySchema": [
{
"AttributeName": "series_id",
"KeyType": "HASH"
},
{
"AttributeName": "title",
"KeyType": "RANGE"
}
],
"TableStatus": "ACTIVE",
"CreationDateTime": "2020-12-27T13:21:10+00:00",
"TableSizeBytes": 0,
"ItemCount": 0
}
}