在 DynamoDB 中创建和使用表 - Amazon SDK for JavaScript
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

我们已宣布即将终止对 Amazon SDK for JavaScript v2 的支持。建议您迁移到 Amazon SDK for JavaScript v3。有关日期、其他详细信息以及如何迁移的信息,请参阅链接的公告。

在 DynamoDB 中创建和使用表

JavaScript code example that applies to Node.js execution

此 Node.js 代码示例演示:

  • 如何创建和管理用于存储及从 DynamoDB 检索数据的表。

情景

类似于其他数据库系统,DynamoDB 将数据存储在表中。DynamoDB 表是数据的集合,这些数据按照类似于行的项目来排列。要在 DynamoDB 中存储或访问数据,您需要创建并使用表。

在本示例中,您使用一系列 Node.js 模块对 DynamoDB 表执行基本操作。代码使用 SDK for JavaScript,通过 AWS.DynamoDB 客户端类的以下方法来创建和处理表:

先决条件任务

要设置和运行此示例,请先完成以下任务:

创建表

创建文件名为 ddb_createtable.js 的 Node.js 模块。请确保按前面所示配置开发工具包。要访问 DynamoDB,请创建一个 AWS.DynamoDB 服务对象。创建一个 JSON 对象,其中包含创建表所需的参数,在本示例中包括各个属性的名称和数据类型、关键架构、表的名称以及要预配置的吞吐量单位。调用 DynamoDB 服务对象的 createTable 方法。

// Load the AWS SDK for Node.js var AWS = require("aws-sdk"); // Set the region AWS.config.update({ region: "REGION" }); // Create the DynamoDB service object var ddb = new AWS.DynamoDB({ apiVersion: "2012-08-10" }); var params = { AttributeDefinitions: [ { AttributeName: "CUSTOMER_ID", AttributeType: "N", }, { AttributeName: "CUSTOMER_NAME", AttributeType: "S", }, ], KeySchema: [ { AttributeName: "CUSTOMER_ID", KeyType: "HASH", }, { AttributeName: "CUSTOMER_NAME", KeyType: "RANGE", }, ], ProvisionedThroughput: { ReadCapacityUnits: 1, WriteCapacityUnits: 1, }, TableName: "CUSTOMER_LIST", StreamSpecification: { StreamEnabled: false, }, }; // Call DynamoDB to create the table ddb.createTable(params, function (err, data) { if (err) { console.log("Error", err); } else { console.log("Table Created", data); } });

要运行示例,请在命令行中键入以下内容。

node ddb_createtable.js

此示例代码可在 GitHub 上的此处找到。

列出表

创建文件名为 ddb_listtables.js 的 Node.js 模块。请确保按前面所示配置开发工具包。要访问 DynamoDB,请创建一个 AWS.DynamoDB 服务对象。创建一个 JSON 对象,其中包含列出表所需的参数,在此示例中将列出的表数量限制为 10。调用 DynamoDB 服务对象的 listTables 方法。

// Load the AWS SDK for Node.js var AWS = require("aws-sdk"); // Set the region AWS.config.update({ region: "REGION" }); // Create the DynamoDB service object var ddb = new AWS.DynamoDB({ apiVersion: "2012-08-10" }); // Call DynamoDB to retrieve the list of tables ddb.listTables({ Limit: 10 }, function (err, data) { if (err) { console.log("Error", err.code); } else { console.log("Table names are ", data.TableNames); } });

要运行示例,请在命令行中键入以下内容。

node ddb_listtables.js

此示例代码可在 GitHub 上的此处找到。

描述表

创建文件名为 ddb_describetable.js 的 Node.js 模块。请确保按前面所示配置开发工具包。要访问 DynamoDB,请创建一个 AWS.DynamoDB 服务对象。创建一个 JSON 对象,其中包含描述表所需的参数,在此示例中包括提供作为命令行参数的表的名称。调用 DynamoDB 服务对象的 describeTable 方法。

// Load the AWS SDK for Node.js var AWS = require("aws-sdk"); // Set the region AWS.config.update({ region: "REGION" }); // Create the DynamoDB service object var ddb = new AWS.DynamoDB({ apiVersion: "2012-08-10" }); var params = { TableName: process.argv[2], }; // Call DynamoDB to retrieve the selected table descriptions ddb.describeTable(params, function (err, data) { if (err) { console.log("Error", err); } else { console.log("Success", data.Table.KeySchema); } });

要运行示例,请在命令行中键入以下内容。

node ddb_describetable.js TABLE_NAME

此示例代码可在 GitHub 上的此处找到。

删除表

创建文件名为 ddb_deletetable.js 的 Node.js 模块。请确保按前面所示配置开发工具包。要访问 DynamoDB,请创建一个 AWS.DynamoDB 服务对象。创建一个 JSON 对象,其中包含删除表所需的参数,在此示例中包括提供作为命令行参数的表的名称。调用 DynamoDB 服务对象的 deleteTable 方法。

// Load the AWS SDK for Node.js var AWS = require("aws-sdk"); // Set the region AWS.config.update({ region: "REGION" }); // Create the DynamoDB service object var ddb = new AWS.DynamoDB({ apiVersion: "2012-08-10" }); var params = { TableName: process.argv[2], }; // Call DynamoDB to delete the specified table ddb.deleteTable(params, function (err, data) { if (err && err.code === "ResourceNotFoundException") { console.log("Error: Table not found"); } else if (err && err.code === "ResourceInUseException") { console.log("Error: Table in use"); } else { console.log("Success", data); } });

要运行示例,请在命令行中键入以下内容。

node ddb_deletetable.js TABLE_NAME

此示例代码可在 GitHub 上的此处找到。