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 $endpointWhere:
--table-name: Table name.--attribute-definitions: Description of element attributes.AttributeName: Attribute name.AttributeType: Attribute type:N:Numbertype.S:Stringtype.B:Binarytype.
--key-schema: Key schema for the table.AttributeName: Name of the key attribute.KeyType: Key type:HASH: Partitioning key.RANGE: Sort key.
The
key-schemaattributes should also be defined in theattribute-definitionsarray.
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
}
}