Uso do cliente de documentos do DynamoDB - AWS SDK for JavaScript

Anunciamos o próximo fim do suporte para o AWS SDK for JavaScript v2. Recomendamos migrar para o AWS SDK for JavaScript v3. Para saber as datas e receber detalhes adicionais e informações sobre como migrar, consulte o anúncio vinculado.

Uso do cliente de documentos do DynamoDB

JavaScript code example that applies to Node.js execution

Este exemplo de código Node.js mostra:

  • Como acessar uma tabela do usando o cliente de documento.

O cenário

O cliente de documento do DynamoDB simplifica o trabalho com itens abstraindo a noção de valores de atributo. Essa abstração anota tipos JavaScript nativos fornecidos como parâmetros de entrada, bem como converte dados de resposta anotados em tipos JavaScript nativos.

Para obter mais informações sobre a classe de cliente de documento do DynamoDB, consulte AWS.DynamoDB.DocumentClient na Referência de API. Para obter mais informações sobre programação com o Amazon DynamoDB, consulte Programação com o DynamoDB no Guia do Desenvovledor Amazon DynamoDB.

Neste exemplo, você usa uma série de módulos de Node.js para realizar operações básicas em uma tabela do DynamoDB usando o cliente de documento. O código usa o SDK para JavaScript para consultar e verificar tabelas usando esses métodos da classe de cliente de documento do DynamoDB:

Tarefas de pré-requisito

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

Obtenção de um item de uma tabela

Crie um módulo do Node.js com o nome de arquivo ddbdoc_get.js. Não se esqueça de configurar o SDK conforme mostrado anteriormente. Para acessar o DynamoDB, crie um objeto do AWS.DynamoDB.DocumentClient. Crie um objeto JSON que contenha os parâmetros necessários para obter um item da tabela, que, neste exemplo, inclui o nome da tabela, o nome da chave hash nessa tabela e o valor da chave hash do item que você deseja receber. Chame o método get do cliente de documento do DynamoDB.

// Load the AWS SDK for Node.js var AWS = require("aws-sdk"); // Set the region AWS.config.update({ region: "REGION" }); // Create DynamoDB document client var docClient = new AWS.DynamoDB.DocumentClient({ apiVersion: "2012-08-10" }); var params = { TableName: "EPISODES_TABLE", Key: { KEY_NAME: VALUE }, }; docClient.get(params, function (err, data) { if (err) { console.log("Error", err); } else { console.log("Success", data.Item); } });

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

node ddbdoc_get.js

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

Colocar um item em uma tabela

Crie um módulo do Node.js com o nome de arquivo ddbdoc_put.js. Não se esqueça de configurar o SDK conforme mostrado anteriormente. Para acessar o DynamoDB, crie um objeto do AWS.DynamoDB.DocumentClient. Crie um objeto JSON que contenha os parâmetros necessários para gravar um item na tabela, que, neste exemplo, inclui o nome da tabela e uma descrição do item a ser adicionado ou atualizado que inclua a chave hash e o valor, bem como nomes e valores de atributos a serem definidos no item. Chame o método put do cliente de documento do DynamoDB.

// Load the AWS SDK for Node.js var AWS = require("aws-sdk"); // Set the region AWS.config.update({ region: "REGION" }); // Create DynamoDB document client var docClient = new AWS.DynamoDB.DocumentClient({ apiVersion: "2012-08-10" }); var params = { TableName: "TABLE", Item: { HASHKEY: VALUE, ATTRIBUTE_1: "STRING_VALUE", ATTRIBUTE_2: VALUE_2, }, }; docClient.put(params, function (err, data) { if (err) { console.log("Error", err); } else { console.log("Success", data); } });

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

node ddbdoc_put.js

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

Atualizar um item em uma tabela

Crie um módulo do Node.js com o nome de arquivo ddbdoc_update.js. Não se esqueça de configurar o SDK conforme mostrado anteriormente. Para acessar o DynamoDB, crie um objeto do AWS.DynamoDB.DocumentClient. Crie um objeto JSON que contenha os parâmetros necessários para gravar um item na tabela, que, neste exemplo, inclui o nome da tabela, a chave do item a ser atualizada, um conjunto de UpdateExpressions que definem os atributos do item a ser atualizado com tokens com valores atribuídos nos parâmetros ExpressionAttributeValues. Chame o método update do cliente de documento do DynamoDB.

// Load the AWS SDK for Node.js var AWS = require("aws-sdk"); // Set the region AWS.config.update({ region: "REGION" }); // Create DynamoDB document client var docClient = new AWS.DynamoDB.DocumentClient({ apiVersion: "2012-08-10" }); // Create variables to hold numeric key values var season = SEASON_NUMBER; var episode = EPISODES_NUMBER; var params = { TableName: "EPISODES_TABLE", Key: { Season: season, Episode: episode, }, UpdateExpression: "set Title = :t, Subtitle = :s", ExpressionAttributeValues: { ":t": "NEW_TITLE", ":s": "NEW_SUBTITLE", }, }; docClient.update(params, function (err, data) { if (err) { console.log("Error", err); } else { console.log("Success", data); } });

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

node ddbdoc_update.js

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

Consultar uma tabela

Este exemplo consulta uma tabela que contém informações do episódio sobre uma série de vídeos, retornando os títulos e as legendas do episódio da segunda temporada anteriores ao episódio 9 que contenham uma frase especificada na legenda.

Crie um módulo do Node.js com o nome de arquivo ddbdoc_query.js. Não se esqueça de configurar o SDK conforme mostrado anteriormente. Para acessar o DynamoDB, crie um objeto do AWS.DynamoDB.DocumentClient. Crie um objeto JSON que contenha os parâmetros necessários para consultar a tabela, que, neste exemplo, inclui o nome da tabela, o ExpressionAttributeValues necessário pela consulta e um KeyConditionExpression que usa esses valores para definir quais itens a consulta retorna. Chame o método query do cliente de documento do DynamoDB.

// Load the AWS SDK for Node.js var AWS = require("aws-sdk"); // Set the region AWS.config.update({ region: "REGION" }); // Create DynamoDB document client var docClient = new AWS.DynamoDB.DocumentClient({ apiVersion: "2012-08-10" }); var params = { ExpressionAttributeValues: { ":s": 2, ":e": 9, ":topic": "PHRASE", }, KeyConditionExpression: "Season = :s and Episode > :e", FilterExpression: "contains (Subtitle, :topic)", TableName: "EPISODES_TABLE", }; docClient.query(params, function (err, data) { if (err) { console.log("Error", err); } else { console.log("Success", data.Items); } });

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

node ddbdoc_query.js

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

Excluir um item de uma tabela

Crie um módulo do Node.js com o nome de arquivo ddbdoc_delete.js. Não se esqueça de configurar o SDK conforme mostrado anteriormente. Para acessar o DynamoDB, crie um objeto do AWS.DynamoDB.DocumentClient. Crie um objeto JSON que contenha os parâmetros necessários para excluir um item na tabela, que, neste exemplo, inclui o nome da tabela, bem como o nome e o valor da chave hash do item que você deseja excluir. Chame o método delete do cliente de documento do DynamoDB.

// Load the AWS SDK for Node.js var AWS = require("aws-sdk"); // Set the region AWS.config.update({ region: "REGION" }); // Create DynamoDB document client var docClient = new AWS.DynamoDB.DocumentClient({ apiVersion: "2012-08-10" }); var params = { Key: { HASH_KEY: VALUE, }, TableName: "TABLE", }; docClient.delete(params, function (err, data) { if (err) { console.log("Error", err); } else { console.log("Success", data); } });

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

node ddbdoc_delete.js

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