Há mais exemplos de AWS SDK disponíveis no repositório AWS Doc SDK Examples
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á.
Os exemplos de código a seguir mostram como usar o UpdateTable
.
Exemplos de ações são trechos de código de programas maiores e devem ser executados em contexto. É possível ver essa ação em contexto no seguinte exemplo de código:
- SDK para C++
-
nota
Tem mais sobre GitHub. Encontre o exemplo completo e saiba como configurar e executar no AWS Code Examples Repository
. //! Update a DynamoDB table. /*! \sa updateTable() \param tableName: Name for the DynamoDB table. \param readCapacity: Provisioned read capacity. \param writeCapacity: Provisioned write capacity. \param clientConfiguration: AWS client configuration. \return bool: Function succeeded. */ bool AwsDoc::DynamoDB::updateTable(const Aws::String &tableName, long long readCapacity, long long writeCapacity, const Aws::Client::ClientConfiguration &clientConfiguration) { Aws::DynamoDB::DynamoDBClient dynamoClient(clientConfiguration); std::cout << "Updating " << tableName << " with new provisioned throughput values" << std::endl; std::cout << "Read capacity : " << readCapacity << std::endl; std::cout << "Write capacity: " << writeCapacity << std::endl; Aws::DynamoDB::Model::UpdateTableRequest request; Aws::DynamoDB::Model::ProvisionedThroughput provisionedThroughput; provisionedThroughput.WithReadCapacityUnits(readCapacity).WithWriteCapacityUnits( writeCapacity); request.WithProvisionedThroughput(provisionedThroughput).WithTableName(tableName); const Aws::DynamoDB::Model::UpdateTableOutcome &outcome = dynamoClient.UpdateTable( request); if (outcome.IsSuccess()) { std::cout << "Successfully updated the table." << std::endl; } else { const Aws::DynamoDB::DynamoDBError &error = outcome.GetError(); if (error.GetErrorType() == Aws::DynamoDB::DynamoDBErrors::VALIDATION && error.GetMessage().find("The provisioned throughput for the table will not change") != std::string::npos) { std::cout << "The provisioned throughput for the table will not change." << std::endl; } else { std::cerr << outcome.GetError().GetMessage() << std::endl; return false; } } return waitTableActive(tableName, dynamoClient); }
Código que aguarda a tabela se tornar ativa.
//! Query a newly created DynamoDB table until it is active. /*! \sa waitTableActive() \param waitTableActive: The DynamoDB table's name. \param dynamoClient: A DynamoDB client. \return bool: Function succeeded. */ bool AwsDoc::DynamoDB::waitTableActive(const Aws::String &tableName, const Aws::DynamoDB::DynamoDBClient &dynamoClient) { // Repeatedly call DescribeTable until table is ACTIVE. const int MAX_QUERIES = 20; Aws::DynamoDB::Model::DescribeTableRequest request; request.SetTableName(tableName); int count = 0; while (count < MAX_QUERIES) { const Aws::DynamoDB::Model::DescribeTableOutcome &result = dynamoClient.DescribeTable( request); if (result.IsSuccess()) { Aws::DynamoDB::Model::TableStatus status = result.GetResult().GetTable().GetTableStatus(); if (Aws::DynamoDB::Model::TableStatus::ACTIVE != status) { std::this_thread::sleep_for(std::chrono::seconds(1)); } else { return true; } } else { std::cerr << "Error DynamoDB::waitTableActive " << result.GetError().GetMessage() << std::endl; return false; } count++; } return false; }
-
Para obter detalhes da API, consulte UpdateTablea Referência AWS SDK para C++ da API.
-