/* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. SPDX-License-Identifier: Apache-2.0 */ /** * Before running this C++ code example, set up your development environment, including your credentials. * * For more information, see the following documentation topic: * * https://docs.aws.amazon.com/sdk-for-cpp/v1/developer-guide/getting-started.html * * For information on the structure of the code examples and how to build and run the examples, see * https://docs.aws.amazon.com/sdk-for-cpp/v1/developer-guide/getting-started-code-examples.html. * **/ //snippet-start:[dynamodb.cpp.get_item.inc] #include #include #include #include #include //snippet-end:[dynamodb.cpp.get_item.inc] #include "dynamodb_samples.h" // snippet-start:[dynamodb.cpp.get_item.code] //! Get an item from an Amazon DynamoDB table. /*! \sa getItem() \param tableName: The table name. \param partitionKey: The partition key. \param partitionValue: The value for the partition key. \param clientConfiguration: AWS client configuration. \return bool: Function succeeded. */ bool AwsDoc::DynamoDB::getItem(const Aws::String &tableName, const Aws::String &partitionKey, const Aws::String &partitionValue, const Aws::Client::ClientConfiguration &clientConfiguration) { Aws::DynamoDB::DynamoDBClient dynamoClient(clientConfiguration); Aws::DynamoDB::Model::GetItemRequest request; // Set up the request. request.SetTableName(tableName); request.AddKey(partitionKey, Aws::DynamoDB::Model::AttributeValue().SetS(partitionValue)); // Retrieve the item's fields and values. const Aws::DynamoDB::Model::GetItemOutcome &outcome = dynamoClient.GetItem(request); if (outcome.IsSuccess()) { // Reference the retrieved fields/values. const Aws::Map &item = outcome.GetResult().GetItem(); if (!item.empty()) { // Output each retrieved field and its value. for (const auto &i: item) std::cout << "Values: " << i.first << ": " << i.second.GetS() << std::endl; } else { std::cout << "No item found with the key " << partitionKey << std::endl; } } else { std::cerr << "Failed to get item: " << outcome.GetError().GetMessage(); } return outcome.IsSuccess(); } // snippet-end:[dynamodb.cpp.get_item.code] /* * * main function * * Usage: 'run_get_item ' * * Prerequisites: Create DynamoDB table named that contains * an item with for its . * */ #ifndef TESTING_BUILD int main(int argc, char **argv) { if (argc < 4) { std::cout << R"("Usage: run_get_item Where: table - The table to get the item from. partition_key - The partition key of the table, partition_value - The item value for the partition key. Example: run_get_item HelloTable Name Joe )"; return 1; } Aws::SDKOptions options; Aws::InitAPI(options); { const Aws::String tableName = (argv[1]); const Aws::String partitionKey = (argv[2]); const Aws::String partitionValue = (argv[3]); Aws::Client::ClientConfiguration clientConfig; // Optional: Set to the AWS Region (overrides config file). // clientConfig.region = "us-east-1"; AwsDoc::DynamoDB::getItem(tableName, partitionKey, partitionValue, clientConfig); } Aws::ShutdownAPI(options); return 0; } #endif // TESTING_BUILD