Criação e uso de tabelas no 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.

Criação e uso de tabelas no DynamoDB

JavaScript code example that applies to Node.js execution

Este exemplo de código Node.js mostra:

  • Como criar e gerenciar tabelas usadas para armazenar e recuperar dados do DynamoDB.

O cenário

De forma semelhante a outros sistemas de banco de dados, o DynamoDB armazena dados em tabelas. Uma tabela do DynamoDB é uma coleção de dados organizada em itens semelhantes às linhas. Para armazenar ou acessar dados no DynamoDB, você cria e trabalha com tabelas.

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

Tarefas de pré-requisito

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

Criar uma tabela

Crie um módulo do Node.js com o nome de arquivo ddb_createtable.js. Não se esqueça de configurar o SDK conforme mostrado anteriormente. Para acessar o DynamoDB, crie um objeto de serviço do AWS.DynamoDB. Crie um objeto JSON que contenha os parâmetros necessários para criar uma tabela, que, neste exemplo, inclui o nome e o tipo de dados de cada atributo, o esquema de chave, o nome da tabela e as unidades de taxa de transferência para provisionar. Chame o método createTable do objeto de serviço do DynamoDB.

// 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); } });

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

node ddb_createtable.js

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

Listar as tabelas

Crie um módulo do Node.js com o nome de arquivo ddb_listtables.js. Não se esqueça de configurar o SDK conforme mostrado anteriormente. Para acessar o DynamoDB, crie um objeto de serviço do AWS.DynamoDB. Crie um objeto JSON que contém os parâmetros necessários para listar as tabelas, que, neste exemplo, limita o número de tabelas listadas a 10. Chame o método listTables do objeto de serviço do DynamoDB.

// 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); } });

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

node ddb_listtables.js

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

Descrição de uma tabela

Crie um módulo do Node.js com o nome de arquivo ddb_describetable.js. Não se esqueça de configurar o SDK conforme mostrado anteriormente. Para acessar o DynamoDB, crie um objeto de serviço do AWS.DynamoDB. Crie um objeto JSON que contém os parâmetros necessários para descrever uma tabela, que, neste exemplo, inclui o nome da tabela fornecido como um parâmetro de linha de comando. Chame o método describeTable do objeto de serviço do DynamoDB.

// 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); } });

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

node ddb_describetable.js TABLE_NAME

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

Exclusão de uma tabela

Crie um módulo do Node.js com o nome de arquivo ddb_deletetable.js. Não se esqueça de configurar o SDK conforme mostrado anteriormente. Para acessar o DynamoDB, crie um objeto de serviço do AWS.DynamoDB. Crie um objeto JSON com os parâmetros necessários para excluir uma tabela, que, neste exemplo, inclui o nome da tabela fornecido como um parâmetro de linha de comando. Chame o método deleteTable do objeto de serviço do DynamoDB.

// 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); } });

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

node ddb_deletetable.js TABLE_NAME

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