Amazon SDK for JavaScript V3 API 参考指南详细描述了 Amazon SDK for JavaScript 版本 3 (V3) 的所有 API 操作。
本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
使用 DynamoDB 文档客户端
此 Node.js 代码示例演示:
如何使用 DynamoDB 实用工具访问 DynamoDB 表。
情景
DynamoDB 文档客户端通过将属性值的概念抽象化,简化了项目的处理。此抽象化标注提供作为输入参数的原生 JavaScript 类型,以及将标注的响应数据转换为原生 JavaScript 类型。
有关 DynamoDB 文档客户端的更多信息,请参阅 GitHub 上的 @aws-sdk/lib-dynamodb 自述文件
在本示例中,您使用一系列 Node.js 模块,通过 DynamoDB 实用工具对 DynamoDB 表执行基本操作。该代码使用 SDK for JavaScript,通过 DynamoDB 文档客户端类的下列方法来查询和扫描表:
有关配置 DynamoDB 文档客户端的更多信息,请参阅 @aws-sdk/lib-dynamodb
先决条件任务
要设置和运行此示例,请先完成以下任务:
-
设置项目环境以运行这些 Node.js 示例,并安装所需的 Amazon SDK for JavaScript 和第三方模块。请按照 GitHub
上的说明进行操作。 使用用户凭证创建共享配置文件。有关提供共享凭证文件的更多信息,请参阅《Amazon SDK 和工具参考指南》中的共享配置和凭证文件。
创建一个可访问其项目的 DynamoDB 表。有关使用 SDK for JavaScript 创建 DynamoDB 表的更多信息,请参阅在 DynamoDB 中创建和使用表。您还可以使用 DynamoDB 控制台
创建表。
重要
这些示例使用 ECMAScript6 (ES6)。这需要使用 Node.js 版本 13.x 或更高版本。要下载并安装最新版本的 Node.js,请参阅 Node.js 下载
但是,如果您更喜欢使用 CommonJS 语法,请参阅 JavaScript ES6/CommonJS 语法。
注意
有关这些示例中使用的数据类型的信息,请参阅 Amazon DynamoDB 中支持的数据类型和命名规则。
从表中获取项目
创建文件名为 get.js
的 Node.js 模块。确保如前所示配置 SDK,包括安装所需的客户端和软件包。其中包括 @aws-sdk/lib-dynamodb
,一个向 @aws-sdk/client-dynamodb
提供文档客户端功能的库包。接下来,在创建文档客户端期间,按如下所示设置编组和解组配置(作为可选的第二个参数)。接下来,创建客户端。现在创建一个 JSON 对象,其中包含从表获取某个项目所需的参数,在本示例中包括表的名称,表中哈希键的名称,所要获取项目的哈希键的值。调用 DynamoDB 文档客户端的 GetCommand
方法。
import { DynamoDBClient } from "@aws-sdk/client-dynamodb"; import { DynamoDBDocumentClient, GetCommand } from "@aws-sdk/lib-dynamodb"; const client = new DynamoDBClient({}); const docClient = DynamoDBDocumentClient.from(client); export const main = async () => { const command = new GetCommand({ TableName: "AngryAnimals", Key: { CommonName: "Shoebill", }, }); const response = await docClient.send(command); console.log(response); return response; };
要运行示例,请在命令提示符中键入以下内容。
node get.js
此示例代码可在 GitHub 上的此处
将项目放入表中
创建文件名为 put.js
的 Node.js 模块。确保如前所示配置 SDK,包括安装所需的客户端和软件包。其中包括 @aws-sdk/lib-dynamodb
,一个向 @aws-sdk/client-dynamodb
提供文档客户端功能的库包。接下来,在创建文档客户端期间,按如下所示设置编组和解组配置(作为可选的第二个参数)。接下来,创建客户端。创建一个 JSON 对象,其中包含将项目写入表中所需的参数,在本示例中包括表的名称,要添加或更新的项目的描述(包括哈希键和值),以及要在项目上设置的属性的名称和值。调用 DynamoDB 文档客户端的 PutCommand
方法。
import { DynamoDBClient } from "@aws-sdk/client-dynamodb"; import { PutCommand, DynamoDBDocumentClient } from "@aws-sdk/lib-dynamodb"; const client = new DynamoDBClient({}); const docClient = DynamoDBDocumentClient.from(client); export const main = async () => { const command = new PutCommand({ TableName: "HappyAnimals", Item: { CommonName: "Shiba Inu", }, }); const response = await docClient.send(command); console.log(response); return response; };
要运行示例,请在命令提示符中键入以下内容。
node put.js
此示例代码可在 GitHub 上的此处
更新表中的项目
创建文件名为 update.js
的 Node.js 模块。确保如前所示配置 SDK,包括安装所需的客户端和软件包。其中包括 @aws-sdk/lib-dynamodb
,一个向 @aws-sdk/client-dynamodb
提供文档客户端功能的库包。接下来,在创建文档客户端期间,按如下所示设置编组和解组配置(作为可选的第二个参数)。接下来,创建客户端。创建一个 JSON 对象,其中包含将项目写入表中所需的参数,在本示例中包括表的名称,要更新的项目的键,定义要更新的项目的属性的一组 UpdateExpressions
,以及您在 ExpressionAttributeValues
参数中将值分配到的令牌。调用 DynamoDB 文档客户端的 UpdateCommand
方法。
import { DynamoDBClient } from "@aws-sdk/client-dynamodb"; import { DynamoDBDocumentClient, UpdateCommand } from "@aws-sdk/lib-dynamodb"; const client = new DynamoDBClient({}); const docClient = DynamoDBDocumentClient.from(client); export const main = async () => { const command = new UpdateCommand({ TableName: "Dogs", Key: { Breed: "Labrador", }, UpdateExpression: "set Color = :color", ExpressionAttributeValues: { ":color": "black", }, ReturnValues: "ALL_NEW", }); const response = await docClient.send(command); console.log(response); return response; };
要运行示例,请在命令提示符中键入以下内容。
node update.js
此示例代码可在 GitHub 上的此处
查询表
创建文件名为 query.js
的 Node.js 模块。确保如前所示配置 SDK,包括安装所需的客户端和软件包。其中包括 @aws-sdk/lib-dynamodb
,一个向 @aws-sdk/client-dynamodb
提供文档客户端功能的库包。创建一个 JSON 对象,其中包含查询表所需的参数,在本示例中包括表名,查询所需的 ExpressionAttributeValues
,以及使用这些值定义查询要返回的项目的 KeyConditionExpression
。调用 DynamoDB 文档客户端的 QueryCommand
方法。
import { DynamoDBClient } from "@aws-sdk/client-dynamodb"; import { QueryCommand, DynamoDBDocumentClient } from "@aws-sdk/lib-dynamodb"; const client = new DynamoDBClient({}); const docClient = DynamoDBDocumentClient.from(client); export const main = async () => { const command = new QueryCommand({ TableName: "CoffeeCrop", KeyConditionExpression: "OriginCountry = :originCountry AND RoastDate > :roastDate", ExpressionAttributeValues: { ":originCountry": "Ethiopia", ":roastDate": "2023-05-01", }, ConsistentRead: true, }); const response = await docClient.send(command); console.log(response); return response; };
要运行示例,请在命令提示符中键入以下内容。
node query.js
此示例代码可在 GitHub 上的此处
从表中删除项目
创建文件名为 delete.js
的 Node.js 模块。确保如前所示配置 SDK,包括安装所需的客户端和软件包。其中包括 @aws-sdk/lib-dynamodb
,一个向 @aws-sdk/client-dynamodb
提供文档客户端功能的库包。接下来,在创建文档客户端期间,按如下所示设置编组和解组配置(作为可选的第二个参数)。接下来,创建客户端。要访问 DynamoDB,请创建一个 DynamoDB
对象。创建一个 JSON 对象,其中包含从表中删除某个项目所需的参数,在本示例中包括表的名称,以及所要删除项目的哈希键的名称和值。调用 DynamoDB 文档客户端的 DeleteCommand
方法。
import { DynamoDBClient } from "@aws-sdk/client-dynamodb"; import { DynamoDBDocumentClient, DeleteCommand } from "@aws-sdk/lib-dynamodb"; const client = new DynamoDBClient({}); const docClient = DynamoDBDocumentClient.from(client); export const main = async () => { const command = new DeleteCommand({ TableName: "Sodas", Key: { Flavor: "Cola", }, }); const response = await docClient.send(command); console.log(response); return response; };
要运行示例,请在命令提示符中键入以下内容。
node delete.js
此示例代码可在 GitHub 上的此处