The AWS SDK for JavaScript V3 API Reference Guide describes in detail all the API operations for the AWS SDK for JavaScript version 3 (V3).
Creating and using tables in DynamoDB
This Node.js code example shows:
How to create and manage tables used to store and retrieve data from DynamoDB.
The scenario
Similar to other database systems, DynamoDB stores data in tables. A DynamoDB table is a collection of data that's organized into items that are analogous to rows. To store or access data in DynamoDB, you create and work with tables.
In this example, you use a series of Node.js modules to perform basic operations
with a DynamoDB table. The code uses the SDK for JavaScript to create and work with tables by using
these methods of the DynamoDB
client class:
Prerequisite tasks
To set up and run this example, first complete these tasks:
-
Set up the project environment to run these Node.js examples, and install the required AWS SDK for JavaScript and third-party modules. Follow the instructions on GitHub
. Install SDK for JavaScript DynamoDB client. For more information, see What's new in Version 3.
Create a shared configurations file with your user credentials. For more information about providing a shared credentials file, see Shared config and credentials files in the AWS SDKs and Tools Reference Guide.
Important
These examples use ECMAScript6 (ES6). This requires Node.js version 13.x or higher. To download and install the latest version of
Node.js, see Node.js downloads.
However, if you prefer to use CommonJS syntax, please refer to JavaScript ES6/CommonJS syntax.
Note
For information about the data types used in these examples, see Supported data types and naming rules in Amazon DynamoDB.
Creating a table
Create a Node.js module with the file name create-table.js
. Be
sure to configure the SDK as previously shown, including downloading the required
clients and packages. To access DynamoDB, create a DynamoDB
client
service object. Create a JSON object containing the parameters needed to create a
table, which in this example includes the name and data type for each attribute, the
key schema, the name of the table, and the units of throughput to provision. Call
the CreateTableCommand
method of the DynamoDB service object.
import { CreateTableCommand, DynamoDBClient } from "@aws-sdk/client-dynamodb"; const client = new DynamoDBClient({}); export const main = async () => { const command = new CreateTableCommand({ TableName: "EspressoDrinks", // For more information about data types, // see https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/HowItWorks.NamingRulesDataTypes.html#HowItWorks.DataTypes and // https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Programming.LowLevelAPI.html#Programming.LowLevelAPI.DataTypeDescriptors AttributeDefinitions: [ { AttributeName: "DrinkName", AttributeType: "S", }, ], KeySchema: [ { AttributeName: "DrinkName", KeyType: "HASH", }, ], ProvisionedThroughput: { ReadCapacityUnits: 1, WriteCapacityUnits: 1, }, }); const response = await client.send(command); console.log(response); return response; };
To run the example, enter the following at the command prompt.
node create-table.js
This example code can be found here on GitHub
Listing your tables
Create a Node.js module with the file name list-tables.js
. Be sure
to configure the SDK as previously shown, including downloading the required clients
and packages. To access DynamoDB, create a DynamoDB
client service
object. Create a JSON object containing the parameters needed to list your tables,
which in this example limits the number of tables listed to 10. Call the
ListTablesCommand
method of the DynamoDB service object.
import { ListTablesCommand, DynamoDBClient } from "@aws-sdk/client-dynamodb"; const client = new DynamoDBClient({}); export const main = async () => { const command = new ListTablesCommand({}); const response = await client.send(command); console.log(response); return response; };
To run the example, enter the following at the command prompt.
node list-tables.js
This example code can be found here on GitHub
Describing a table
Create a Node.js module with the file name describe-table.js
. Be
sure to configure the SDK as previously shown, including downloading the required
clients and packages. To access DynamoDB, create a DynamoDB
client
service object. Create a JSON object containing the parameters needed to describe a
DescribeTableCommand
method of the DynamoDB service object.
import { DescribeTableCommand, DynamoDBClient } from "@aws-sdk/client-dynamodb"; const client = new DynamoDBClient({}); export const main = async () => { const command = new DescribeTableCommand({ TableName: "Pastries", }); const response = await client.send(command); console.log(`TABLE NAME: ${response.Table.TableName}`); console.log(`TABLE ITEM COUNT: ${response.Table.ItemCount}`); return response; };
To run the example, enter the following at the command prompt.
node describe-table.js
This example code can be found here on GitHub
Deleting a table
Create a Node.js module with the file name delete-table.js
. Be
sure to configure the SDK as previously shown, including downloading the required
clients and packages. To access DynamoDB, create a DynamoDB
client
service object. Create a JSON object containing the parameters needed to delete a
table, which in this example includes the name of the table provided as a
command-line parameter. Call the DeleteTableCommand
method of the DynamoDB
service object.
import { DeleteTableCommand, DynamoDBClient } from "@aws-sdk/client-dynamodb"; const client = new DynamoDBClient({}); export const main = async () => { const command = new DeleteTableCommand({ TableName: "DecafCoffees", }); const response = await client.send(command); console.log(response); return response; };
To run the example, enter the following at the command prompt.
node delete-table.js
This example code can be found here on GitHub