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.
-
Crie uma instância da classe
AmazonDynamoDBClient
(o cliente). -
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 objetoUpdateTableRequest
para atualizar uma tabela existente. -
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.
Tópicos
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
-
Crie uma instância da classe
AmazonDynamoDBClient
. -
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.
-
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
-
Crie uma instância da classe
AmazonDynamoDBClient
. -
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.
-
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.
-
Crie uma instância da classe
AmazonDynamoDBClient
. -
Crie uma instância da classe
DeleteTableRequest
e forneça o nome da tabela que deseja excluir. -
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);