Trabalhar com tabelas do DynamoDB no .NET - Amazon DynamoDB

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á.

Trabalhar com tabelas do DynamoDB no .NET

Você pode usar o AWS SDK for .NET para criar, atualizar e excluir tabelas, listar todas as tabelas em sua conta ou obter informações sobre uma tabela específica.

Veja a seguir as etapas comuns para operações de tabelas do Amazon DynamoDB usando o AWS SDK for .NET.

  1. Crie uma instância da classe AmazonDynamoDBClient (o cliente).

  2. Forneça os parâmetros obrigatórios e opcionais para a operação, criando os objetos de solicitação correspondentes.

    Por exemplo, crie um objeto CreateTableRequest para criar uma tabela e o objeto UpdateTableRequest para atualizar uma tabela existente.

  3. Execute o método apropriado fornecido pelo cliente que você criou na etapa anterior.

nota

Os exemplos desta seção não funcionam com o .NET core, porque ele não oferece suporte a métodos síncronos. Para obter mais informações, consulte APIs assíncronas da AWS para o .NET.

Criar uma tabela

Para criar uma tabela, você deve fornecer o nome da tabela, a chave primária e os valores de throughput provisionado.

Para criar uma tabela usando a API de baixo nível do AWS SDK for .NET
  1. Crie uma instância da classe AmazonDynamoDBClient.

  2. Crie uma instância da classe CreateTableRequest para fornecer as informações solicitadas.

    Você deve fornecer o nome da tabela, a chave primária e os valores de throughput provisionado.

  3. Execute o método AmazonDynamoDBClient.CreateTable fornecendo o objeto de solicitação como um parâmetro.

O exemplo de C# a seguir demonstra as etapas anteriores. O exemplo cria uma tabela (ProductCatalog) que usa Id como a chave primária e o conjunto de valores de throughput provisionado. Dependendo das necessidades de seu aplicativo, você pode atualizar os valores de throughput provisionado usando a API UpdateTable.

AmazonDynamoDBClient client = new AmazonDynamoDBClient(); string tableName = "ProductCatalog"; var request = new CreateTableRequest { TableName = tableName, AttributeDefinitions = new List<AttributeDefinition>() { new AttributeDefinition { AttributeName = "Id", AttributeType = "N" } }, KeySchema = new List<KeySchemaElement>() { new KeySchemaElement { AttributeName = "Id", KeyType = "HASH" //Partition key } }, ProvisionedThroughput = new ProvisionedThroughput { ReadCapacityUnits = 10, WriteCapacityUnits = 5 } }; var response = client.CreateTable(request);

Você deve aguardar até que o DynamoDB crie a tabela e defina o status como ACTIVE. A resposta CreateTable inclui a propriedade TableDescription que fornece as informações necessárias da tabela.

exemplo
var result = response.CreateTableResult; var tableDescription = result.TableDescription; Console.WriteLine("{1}: {0} \t ReadCapacityUnits: {2} \t WriteCapacityUnits: {3}", tableDescription.TableStatus, tableDescription.TableName, tableDescription.ProvisionedThroughput.ReadCapacityUnits, tableDescription.ProvisionedThroughput.WriteCapacityUnits); string status = tableDescription.TableStatus; Console.WriteLine(tableName + " - " + status);

Você também pode chamar o método DescribeTable do cliente para obter informações da tabela a qualquer momento.

exemplo
var res = client.DescribeTable(new DescribeTableRequest{TableName = "ProductCatalog"});

Atualizar uma tabela

Você pode atualizar apenas os valores de throughput provisionado de uma tabela existente. Dependendo das necessidades de seu aplicativo, talvez você precise atualizar esses valores.

nota

Você pode aumentar a capacidade de throughput com a frequência necessária e diminuí-la dentro de determinadas restrições. Para obter mais informações sobre aumentos e diminuições de throughput por dia, consulte Service quotas, conta e cotas de tabela no Amazon DynamoDB.

Para atualizar uma tabela usando a API de baixo nível do AWS SDK for .NET
  1. Crie uma instância da classe AmazonDynamoDBClient.

  2. Crie uma instância da classe UpdateTableRequest para fornecer as informações solicitadas.

    Você deve fornecer o nome da tabela e os novos valores de throughput provisionado.

  3. Execute o método AmazonDynamoDBClient.UpdateTable fornecendo o objeto de solicitação como um parâmetro.

O exemplo de C# a seguir demonstra as etapas anteriores.

exemplo
AmazonDynamoDBClient client = new AmazonDynamoDBClient(); string tableName = "ExampleTable"; var request = new UpdateTableRequest() { TableName = tableName, ProvisionedThroughput = new ProvisionedThroughput() { // Provide new values. ReadCapacityUnits = 20, WriteCapacityUnits = 10 } }; var response = client.UpdateTable(request);

Excluir uma tabela

Siga estas etapas para excluir uma tabela usando a API de baixo nível do .NET.

Para excluir uma tabela usando a API de baixo nível do AWS SDK for .NET.
  1. Crie uma instância da classe AmazonDynamoDBClient.

  2. Crie uma instância da classe DeleteTableRequest e forneça o nome da tabela que deseja excluir.

  3. Execute o método AmazonDynamoDBClient.DeleteTable fornecendo o objeto de solicitação como um parâmetro.

O exemplo de código C# a seguir demonstra as etapas anteriores.

exemplo
AmazonDynamoDBClient client = new AmazonDynamoDBClient(); string tableName = "ExampleTable"; var request = new DeleteTableRequest{ TableName = tableName }; var response = client.DeleteTable(request);

Listar tabelas

Para listar tabelas em sua conta usando a API de baixo nível do AWS SDK for .NET, crie uma instância do AmazonDynamoDBClient e execute o método ListTables.

A operação ListTables não requer parâmetros. No entanto, você pode especificar parâmetros opcionais. Por exemplo, você pode definir o parâmetro Limit se desejar usar paginação para limitar o número de nomes de tabela por página. Isso requer que você crie um objeto ListTablesRequest e forneça parâmetros opcionais, conforme mostrado no seguinte exemplo de C #. Junto com o tamanho da página, a solicitação define o parâmetro ExclusiveStartTableName. Inicialmente, ExclusiveStartTableName é nulo. No entanto, após a busca da primeira página de resultados, para recuperar a próxima página de resultados, você deve definir esse valor de parâmetro como a propriedade LastEvaluatedTableName do resultado atual.

exemplo
AmazonDynamoDBClient client = new AmazonDynamoDBClient(); // Initial value for the first page of table names. string lastEvaluatedTableName = null; do { // Create a request object to specify optional parameters. var request = new ListTablesRequest { Limit = 10, // Page size. ExclusiveStartTableName = lastEvaluatedTableName }; var response = client.ListTables(request); ListTablesResult result = response.ListTablesResult; foreach (string name in result.TableNames) Console.WriteLine(name); lastEvaluatedTableName = result.LastEvaluatedTableName; } while (lastEvaluatedTableName != null);