本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
在 .NET 中處理 DynamoDB 資料表
您可以使用AWS SDK for .NET建立、更新及刪除資料表;列出您帳戶中的所有資料表;或是取得特定資料表的相關資訊。
下列是使用 AWS SDK for .NET 執行 Amazon DynamoDB 資料表操作的一般步驟。
-
建立
AmazonDynamoDBClient
類別的執行個體 (用戶端)。 -
透過建立對應的請求物件,為操作提供必要及選用的參數。
例如,建立
CreateTableRequest
物件來建立資料表,以及建立UpdateTableRequest
物件來更新現有的資料表。 -
執行您在前一步驟中建立之用戶端所提供的適當方法。
注意
本節中的範例不使用 .NET Core,因為它不支援同步方法。如需詳細資訊,請參閱適用於 .NET 的 AWS 非同步 API。
建立資料表
若要建立資料表,您必須提供資料表名稱、其主索引鍵,以及佈建的輸送量數值。
使用AWS SDK for .NET低階 API 建立資料表
-
建立
AmazonDynamoDBClient
類別的執行個體。 -
建立
CreateTableRequest
類別的執行個體,以提供請求資訊。您必須提供資料表名稱、主索引鍵,以及佈建的輸送量數值。
-
以參數形式提供請求物件,以便執行
AmazonDynamoDBClient.CreateTable
方法。
下列 C# 範例示範前述步驟。此範例會建立使用 Id
做為主索引鍵的資料表 (ProductCatalog
) 以及一組佈建輸送量值。您可以視您應用程式的需求,使用 UpdateTable
API 更新佈建的輸送量數值。
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);
您必須等到 DynamoDB 建立資料表,並將資料表狀態設定為 ACTIVE
。CreateTable
回應包含提供必要資料表資訊的 TableDescription
屬性。
範例
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);
您也可以呼叫用戶端的 DescribeTable
方法,隨時取得資料表資訊。
範例
var res = client.DescribeTable(new DescribeTableRequest{TableName = "ProductCatalog"});
更新資料表
您只可更新為現有資料表佈建的輸送量數值。視您的應用程式需求而定,您可能需要更新這些值。
注意
您可以根據需要隨時增加傳輸量,並在一定的限制範圍內降低傳輸量。關於輸送量每日的增加和減少,詳細資訊請參閱Amazon DynamoDB 中的服務、帳戶和資料表配額。
使用AWS SDK for .NET低階 API 更新資料表
-
建立
AmazonDynamoDBClient
類別的執行個體。 -
建立
UpdateTableRequest
類別的執行個體,以提供請求資訊。您必須提供資料表名稱與新的佈建輸送量值。
-
以參數形式提供請求物件,以便執行
AmazonDynamoDBClient.UpdateTable
方法。
下列 C# 範例示範前述步驟。
範例
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);
刪除資料表
下列步驟會使用 .NET 低階 API 刪除資料表。
使用AWS SDK for .NET低階 API 刪除資料表
-
建立
AmazonDynamoDBClient
類別的執行個體。 -
建立
DeleteTableRequest
類別的執行個體,並提供您要刪除的資料表名稱。 -
以參數形式提供請求物件,以便執行
AmazonDynamoDBClient.DeleteTable
方法。
下列 C# 程式碼範例示範前述步驟。
範例
AmazonDynamoDBClient client = new AmazonDynamoDBClient(); string tableName = "ExampleTable"; var request = new DeleteTableRequest{ TableName = tableName }; var response = client.DeleteTable(request);
列出資料表
若要使用 AWS SDK for .NET 低階 API 列出您帳戶中的資料表,請建立 AmazonDynamoDBClient
的執行個體,然後執行 ListTables
方法。
ListTables 操作不需要任何參數。但是您可以指定選用參數。例如,如果您想要使用分頁來限制每頁的資料表名稱數目,您可以設定 Limit
參數。這需要您建立 ListTablesRequest
物件並提供選用參數,如下列 C# 程式碼範例所示。除了頁面大小外,請求還會設定 ExclusiveStartTableName
參數。一開始,ExclusiveStartTableName
是 null。但是,在您擷取第一頁結果後,若要擷取下一頁結果,您必須將此參數值設定為目前結果的 LastEvaluatedTableName
屬性。
範例
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);