Ler e gravar itens em lote no DynamoDB - AWS SDK for JavaScript

O Guia de referência da API do AWS SDK for JavaScript V3 descreve em detalhes todas as operações da API para o AWS SDK for JavaScript versão 3 (V3).

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Ler e gravar itens em lote no DynamoDB

JavaScript code example that applies to Node.js execution

Este exemplo de código Node.js mostra:

  • Como ler e gravar lotes de itens em uma tabela do DynamoDB.

O cenário

Neste exemplo, você usa uma série de módulos de Node.js para colocar um lote de itens em uma tabela do DynamoDB, bem como ler um lote de itens. O código usa o SDK para JavaScript para realizar operações de leitura e gravação em lote usando estes métodos da classe de cliente DynamoDB:

Tarefas de pré-requisito

Para configurar e executar este exemplo, primeiro conclua estas tarefas:

  • Configure o ambiente do projeto para executar estes exemplos do Node TypeScript e instale os módulos do AWS SDK for JavaScript e de terceiros necessários. Siga as instruções no GitHub.

  • Crie um arquivo de configurações compartilhado com as credenciais de usuário. Para obter mais informações sobre como fornecer um arquivo de credenciais compartilhado, consulte Arquivos de configuração e credenciais compartilhados no Guia de referência de ferramentas e SDKs da AWS.

  • Crie uma tabela do DynamoDB cujos itens você possa acessar. Para obter mais informações sobre como criar uma tabela do DynamoDB, consulte Criação e uso de tabelas no DynamoDB.

Importante

Esses exemplos usam ECMAScript6 (ES6). Isso requer o Node.js versão 13.x ou superior. Para baixar e instalar a versão mais recente do Node.js, consulte Downloads do Node.js.

No entanto, se você preferir usar a sintaxe CommonJS, consulte Sintaxe ES6/CommonJS de JavaScript.

nota

Para obter informações sobre os tipos de dados usados nesses exemplos, consulte Tipos de dados e regras de nomenclatura compatíveis no Amazon DynamoDB.

Ler itens em um lote

Crie um módulo do Node.js com o nome de arquivo batch-get-item.js. Certifique-se de configurar o SDK conforme mostrado anteriormente, incluindo o download dos clientes e pacotes necessários. Para acessar o DynamoDB, crie um objeto de serviço do cliente DynamoDB. Crie um objeto JSON que contenha os parâmetros necessários para obter um lote de itens, que, neste exemplo, inclui o nome de uma ou mais tabelas para leitura, os valores de chaves para leitura em cada tabela, e a expressão de projeção que especifica os atributos a serem retornados. Chame o método BatchGetItemCommand do objeto de serviço do DynamoDB.

import { BatchGetItemCommand, DynamoDBClient } from "@aws-sdk/client-dynamodb"; const client = new DynamoDBClient({}); export const main = async () => { const command = new BatchGetItemCommand({ RequestItems: { // Each key in this object is the name of a table. This example refers // to a PageAnalytics table. PageAnalytics: { // Each entry in Keys is an object that specifies a primary key. Keys: [ { // "PageName" is the partition key (simple primary key). // "S" specifies a string as the data type for the value "Home". // 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 PageName: { S: "Home" }, }, { PageName: { S: "About" }, }, ], // Only return the "PageName" and "PageViews" attributes. ProjectionExpression: "PageName, PageViews", }, }, }); const response = await client.send(command); console.log(response.Responses["PageAnalytics"]); return response; };

Para executar o exemplo, digite o seguinte na linha de comando.

node batch-get-item.js

Esse código de exemplo pode ser encontrado aqui no GitHub.

Gravar itens em um lote

Crie um módulo do Node.js com o nome de arquivo batch-write-item.js. Certifique-se de configurar o SDK conforme mostrado anteriormente, incluindo o download dos clientes e pacotes necessários. Para acessar o DynamoDB, crie um objeto de serviço do cliente DynamoDB. Crie um objeto JSON que contenha os parâmetros necessários para obter um lote de itens, que, neste exemplo, inclui a tabela na qual você deseja gravar itens, as chaves que você deseja gravar para cada item, e os atributos com os valores. Chame o método BatchWriteItemCommand do objeto de serviço do DynamoDB.

import { BatchWriteItemCommand, DynamoDBClient, } from "@aws-sdk/client-dynamodb"; const client = new DynamoDBClient({}); export const main = async () => { const command = new BatchWriteItemCommand({ RequestItems: { // Each key in this object is the name of a table. This example refers // to a Coffees table. Coffees: [ // Each entry in Coffees is an object that defines either a PutRequest or DeleteRequest. { // Each PutRequest object defines one item to be inserted into the table. PutRequest: { // The keys of Item are attribute names. Each attribute value is an object with a data type and value. // For more information about data types, // see https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/HowItWorks.NamingRulesDataTypes.html#HowItWorks.DataTypes Item: { Name: { S: "Donkey Kick" }, Process: { S: "Wet-Hulled" }, Flavors: { SS: ["Earth", "Syrup", "Spice"] }, }, }, }, { PutRequest: { Item: { Name: { S: "Flora Ethiopia" }, Process: { S: "Washed" }, Flavors: { SS: ["Stone Fruit", "Toasted Almond", "Delicate"] }, }, }, }, ], }, }); const response = await client.send(command); console.log(response); return response; };

Para executar o exemplo, digite o seguinte na linha de comando.

node batch-write-item.js

Esse código de exemplo pode ser encontrado aqui no GitHub.