Aktualizacja tabeli pozwala jedynie na dokonanie zmian wartości provisioned throughput dla istniejącej tabeli. Tak jak wpisałem wcześniej, na bazie analizy ruchu w naszej aplikacji może dojść do konieczności aktualizacji tych wartości. Możemy zwiększać wartości przepustowości tak często jak jest to koniecznie, ale zmniejszanie wiąże się z pewnymi ograniczeniami. Więcej informacji możecie znaleźć w oficjalnej dokumentacji: Service, account, and table quotas in Amazon DynamoDB a my przechodzimy do części właściwej wpisu.
Aktualizacja tabeli wymagana od nas utworzenia instancji klasy AmazonDynamoDBClient, w drugim kroku musimy przygotować żądanie korzystając z klasy UpdateTableRequest oraz podajć nazwę tabeli i nowe wartości przepustowości. Ostatni krok to uruchomienie metody UpdateTable. W tym kroku wykonamy jeszcze sprawdzenie czy nasze wartości rzeczywiście zostały zaktualizowane.
Spójrzcie na poniższy przykład:
public async Task<ActionResult<string>> UpdateTable() { // W pierwszym kroku sprawdzimy obecne wartości dla Read/Write DescribeTableResponse tableDetails = _amazonDynamoDB.DescribeTableAsync(new DescribeTableRequest() { TableName = TableName }).Result; StringBuilder sb = new StringBuilder(); sb.AppendLine("Wartości przed aktualizacją:"); sb.AppendLine($"Read Capacity Unit: {tableDetails.Table.ProvisionedThroughput.ReadCapacityUnits}"); sb.AppendLine($"Write Capacity Unit: {tableDetails.Table.ProvisionedThroughput.WriteCapacityUnits}"); sb.AppendLine(); var request = new UpdateTableRequest() { TableName = TableName, ProvisionedThroughput = new ProvisionedThroughput() { // Nowe wartości ReadCapacityUnits = 20, WriteCapacityUnits = 20 } }; var response = await _amazonDynamoDB.UpdateTableAsync(request); sb.AppendLine("Wartości po aktualizacji:"); sb.AppendLine($"Read Capacity Unit: {response.TableDescription.ProvisionedThroughput.ReadCapacityUnits}"); sb.AppendLine($"Write Capacity Unit: {response.TableDescription.ProvisionedThroughput.WriteCapacityUnits}"); return sb.ToString(); }Po wykonaniu powyższego kodu możecie zobaczyć, że wartości zostały zaktualizowane: