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

Amazon SDK for JavaScriptV3 API 参考指南详细描述了Amazon SDK for JavaScript版本 3 (V3) 的所有 API 操作。

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

在 DynamoDB 中创建和使用表

JavaScript code example that applies to Node.js execution

此 Node.js 代码示例演示:

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

场景

类似于其他数据库系统,DynamoDB 将数据存储在表中。DynamoDB 表是一组数据,这些数据被组织成类似于行的项目。要在 DynamoDB 中存储或访问数据,您需要创建和使用表。

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

先决条件步骤

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

  • 设置项目环境以运行这些 Node.js 示例,并安装所需的模块Amazon SDK for JavaScript和第三方模块。按照上的说明进行操作 GitHub

  • 安装适用于 D JavaScript ynamoDB 客户端的 SDK。有关更多信息,请参阅 版本 3 中的新增功能

  • 使用用户凭证创建共享配置文件。有关提供共享凭证文件的更多信息,请参阅从共享凭证文件加载 Node.js 中的凭证

重要

这些示例使用 ecmasCript6 (ES6)。这需要 Node.js 13.x 或更高版本。要下载并安装最新版本的 Node.js,请参阅 Node.js 下载。

但是,如果你更喜欢使用 CommonJS 语法,请参阅JavaScript es6/CommonJS 语法

注意

有关这些示例中使用的数据类型的信息,请参阅 Amazon DynamoDB 中支持的数据类型和命名规则

创建表

创建一个libs目录,然后使用该文件名创建 Node.js 模块ddbClient.js。将以下代码复制并粘贴到其中,这将创建 DynamoDB 客户端对象。将 RE G ION 替换为您的Amazon区域。

// Create service client module using ES6 syntax. import { DynamoDBClient } from "@aws-sdk/client-dynamodb"; // Set the AWS Region. const REGION = "REGION"; //e.g. "us-east-1" // Create an Amazon DynamoDB service client object. const ddbClient = new DynamoDBClient({ region: REGION }); export { ddbClient };

此代码可在此处获取 GitHub。

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

注意

将 TAB LE_ NAME 替换为表的名称,AT TRIBUTE_NAME_1 替换为分区键的名称,AT TRIBUTE_NAME_2 替换为排序键的名称(可选),将 AT TRIBUTE_T YPE 替换为属性类型(例如,N [表示数字],S [表示字符串]等)。

注意

表的主键由以下属性组成:

  • Season

  • Episode

// Import required AWS SDK clients and commands for Node.js import { CreateTableCommand } from "@aws-sdk/client-dynamodb"; import { ddbClient } from "./libs/ddbClient.js"; // Set the parameters export const params = { AttributeDefinitions: [ { AttributeName: "Season", //ATTRIBUTE_NAME_1 AttributeType: "N", //ATTRIBUTE_TYPE }, { AttributeName: "Episode", //ATTRIBUTE_NAME_2 AttributeType: "N", //ATTRIBUTE_TYPE }, ], KeySchema: [ { AttributeName: "Season", //ATTRIBUTE_NAME_1 KeyType: "HASH", }, { AttributeName: "Episode", //ATTRIBUTE_NAME_2 KeyType: "RANGE", }, ], ProvisionedThroughput: { ReadCapacityUnits: 1, WriteCapacityUnits: 1, }, TableName: "TEST_TABLE", //TABLE_NAME StreamSpecification: { StreamEnabled: false, }, }; export const run = async () => { try { const data = await ddbClient.send(new CreateTableCommand(params)); console.log("Table Created", data); return data; } catch (err) { console.log("Error", err); } }; run();

要运行示例,请在命令提示符处输入以下内容。

node ddb_createtable.js

此示例代码可以在此处找到 GitHub

列出表

创建一个libs目录,然后使用该文件名创建 Node.js 模块ddbClient.js。将以下代码复制并粘贴到其中,这将创建 DynamoDB 客户端对象。将 RE G ION 替换为您的Amazon区域。

// Create service client module using ES6 syntax. import { DynamoDBClient } from "@aws-sdk/client-dynamodb"; // Set the AWS Region. const REGION = "REGION"; //e.g. "us-east-1" // Create an Amazon DynamoDB service client object. const ddbClient = new DynamoDBClient({ region: REGION }); export { ddbClient };

此代码可在此处获取 GitHub。

创建文件名为 ddb_listtables.js 的 Node.js 模块。请务必按前面所示配置 SDK,包括下载所需的客户端和软件包。要访问 DynamoDB,请创建一个DynamoDB客户端服务对象。创建一个 JSON 对象,其中包含列出表所需的参数,在此示例中将列出的表数量限制为 10。调用 DynamoDB 服务对象ListTablesCommand的方法。

// Import required AWS SDK clients and commands for Node.js import { ListTablesCommand } from "@aws-sdk/client-dynamodb"; import { ddbClient } from "./libs/ddbClient.js"; export const run = async () => { try { const data = await ddbClient.send(new ListTablesCommand({})); console.log(data); // console.log(data.TableNames.join("\n")); return data; } catch (err) { console.error(err); } }; run();

要运行示例,请在命令提示符处输入以下内容。

node ddb_listtables.js

此示例代码可以在此处找到 GitHub

描述表

创建一个libs目录,然后使用该文件名创建 Node.js 模块ddbClient.js。将以下代码复制并粘贴到其中,这将创建 DynamoDB 客户端对象。将 RE G ION 替换为您的Amazon区域。

// Create service client module using ES6 syntax. import { DynamoDBClient } from "@aws-sdk/client-dynamodb"; // Set the AWS Region. const REGION = "REGION"; //e.g. "us-east-1" // Create an Amazon DynamoDB service client object. const ddbClient = new DynamoDBClient({ region: REGION }); export { ddbClient };

此代码可在此处获取 GitHub。

创建文件名为 ddb_describetable.js 的 Node.js 模块。请务必按前面所示配置 SDK,包括下载所需的客户端和软件包。要访问 DynamoDB,请创建一个DynamoDB客户端服务对象。创建一个 JSON 对象,其中包含描述 DynamoDB 服务对象的DescribeTableCommand方法所需的参数。

注意

TABLE_N AME 替换表名。

// Import required AWS SDK clients and commands for Node.js import { DescribeTableCommand } from "@aws-sdk/client-dynamodb"; import { ddbClient } from "./libs/ddbClient.js"; // Set the parameters export const params = { TableName: "TABLE_NAME" }; //TABLE_NAME export const run = async () => { try { const data = await ddbClient.send(new DescribeTableCommand(params)); console.log("Success", data); // console.log("Success", data.Table.KeySchema); return data; } catch (err) { console.log("Error", err); } }; run();

要运行示例,请在命令提示符处输入以下内容。

node ddb_describetable.js

此示例代码可以在此处找到 GitHub

删除表

创建一个libs目录,然后使用该文件名创建 Node.js 模块ddbClient.js。将以下代码复制并粘贴到其中,这将创建 DynamoDB 客户端对象。将 RE G ION 替换为您的Amazon区域。

// Create service client module using ES6 syntax. import { DynamoDBClient } from "@aws-sdk/client-dynamodb"; // Set the AWS Region. const REGION = "REGION"; //e.g. "us-east-1" // Create an Amazon DynamoDB service client object. const ddbClient = new DynamoDBClient({ region: REGION }); export { ddbClient };

此代码可在此处获取 GitHub。

创建文件名为 ddb_deletetable.js 的 Node.js 模块。请务必按前面所示配置 SDK,包括下载所需的客户端和软件包。要访问 DynamoDB,请创建一个DynamoDB客户端服务对象。创建一个 JSON 对象,其中包含删除表所需的参数,在此示例中包括提供作为命令行参数的表的名称。调用 DynamoDB 服务对象DeleteTableCommand的方法。

// Import required AWS SDK clients and commands for Node.js import { DeleteTableCommand } from "@aws-sdk/client-dynamodb"; import { ddbClient } from "./libs/ddbClient.js"; // Set the parameters export const params = { TableName: "CUSTOMER_LIST_NEW", }; export const run = async () => { try { const data = await ddbClient.send(new DeleteTableCommand(params)); console.log("Success, table deleted", data); return data; } catch (err) { console.log("Error", err); } }; run();

要运行示例,请在命令提示符处输入以下内容。

node ddb_deletetable.js

此示例代码可以在此处找到 GitHub