Utilizzo di tabelle DynamoDB in .NET - Amazon DynamoDB

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Utilizzo di tabelle DynamoDB in .NET

Puoi usare AWS SDK for .NET per creare, aggiornare ed eliminare tabelle, elencare tutte le tabelle nel tuo account o ottenere informazioni su una tabella specifica.

Di seguito sono riportate le fasi comuni per le operazioni delle tabelle Amazon DynamoDB che utilizzano AWS SDK for .NET.

  1. Crea un'istanza della classe AmazonDynamoDBClient (client).

  2. Fornisci i parametri obbligatori e facoltativi per l'operazione creando gli oggetti di richiesta corrispondenti.

    Ad esempio, crea un oggetto CreateTableRequest per creare una tabella e un oggetto UpdateTableRequest per aggiornare una tabella esistente.

  3. Eseguire il metodo appropriato fornito dal client creato nella fase precedente.

Nota

Gli esempi in questa sezione non funzionano con .NET core poiché non supporta metodi sincroni. Per ulteriori informazioni, consulta API asincrone di AWS per .NET.

Creazione di una tabella

Per creare una tabella, è necessario fornire il nome della tabella, la sua chiave primaria e i valori del throughput assegnato.

Per creare una tabella tramite l'API di basso livello AWS SDK for .NET
  1. Creare un'istanza della classe AmazonDynamoDBClient.

  2. Crea un'istanza della classe CreateTableRequest per fornire le informazioni della richiesta.

    È necessario fornire il nome della tabella, la chiave primaria e i valori del throughput assegnato.

  3. Eseguire il metodo AmazonDynamoDBClient.CreateTable fornendo l'oggetto della richiesta come parametro.

Il seguente esempio C# mostra le fasi precedenti. L'esempio crea una tabella (ProductCatalog), che usa l'Id come la chiave primaria e un set di valori di throughput assegnato. A seconda dei requisiti della tua applicazione, puoi aggiornare i valori del throughput assegnato usando l'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);

È necessario attendere fino a quando DynamoDB crea la tabella e ne imposta lo stato su ACTIVE. La risposta CreateTable include la proprietà TableDescription che fornisce le informazioni necessarie sulla tabella.

Esempio
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);

Puoi chiamare il metodo DescribeTable del client per ottenere informazioni sulla tabella in qualsiasi momento.

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

Aggiornamento di una tabella

Puoi aggiornare solo i valori del throughput assegnato di una tabella esistente. A seconda dei requisiti dell'applicazione, potrebbe essere necessario aggiornare questi valori.

Nota

Puoi aumentare la capacità di throughput ogni volta che serve e diminuirla entro certi limiti. Per ulteriori informazioni sugli aumenti e le diminuzioni di throughput al giorno, consulta Quote di servizio, account e tabelle in Amazon DynamoDB.

Per aggiornare una tabella tramite l'API di basso livello AWS SDK for .NET
  1. Creare un'istanza della classe AmazonDynamoDBClient.

  2. Crea un'istanza della classe UpdateTableRequest per fornire le informazioni della richiesta.

    È necessario fornire il nome della tabella e nuovi valori del throughput assegnato.

  3. Eseguire il metodo AmazonDynamoDBClient.UpdateTable fornendo l'oggetto della richiesta come parametro.

Il seguente esempio C# mostra le fasi precedenti.

Esempio
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);

Eliminazione di una tabella

Seguire queste fasi per eliminare una tabella utilizzando l'API di basso livello .NET.

Per eliminare una tabella tramite l'API di basso livello AWS SDK for .NET
  1. Creare un'istanza della classe AmazonDynamoDBClient.

  2. Crea un'istanza della classe DeleteTableRequest e fornisci il nome della tabella che vuoi eliminare.

  3. Eseguire il metodo AmazonDynamoDBClient.DeleteTable fornendo l'oggetto della richiesta come parametro.

Il seguente esempio di codice C# mostra le fasi precedenti.

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

Elenco delle tabelle

Per elencare le tabelle nell'account usando l'API di basso livello AWS SDK for .NET, creare un'istanza di AmazonDynamoDBClient ed eseguire il metodo ListTables.

L'operazione ListTables non richiede parametri. Tuttavia, puoi anche specificare i parametri facoltativi. Per esempio, puoi impostare il parametro Limit se vuoi usare la paginazione per limitare il numero di nomi di tabelle per pagina. Questo ti costringe a creare un oggetto ListTablesRequest e a fornire parametri facoltativi come mostrato nel seguente esempio di codice C#. Insieme alla dimensione della pagina, la richiesta imposta il parametro ExclusiveStartTableName. Inizialmente, ExclusiveStartTableName è nullo. Tuttavia, dopo il recupero della prima pagina per il recupero dei risultati delle pagine successive è necessario impostare il valore del parametro sulla proprietà LastEvaluatedTableName del risultato corrente.

Esempio
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);