2024-01-04 10:14:09 -05:00
# DynamoDB code examples for the SDK for C++
2022-11-17 15:28:20 -05:00
2022-10-04 12:50:26 -04:00
## Overview
2022-11-17 15:28:20 -05:00
2024-01-04 10:14:09 -05:00
Shows how to use the AWS SDK for C++ to work with Amazon DynamoDB.
2022-10-04 12:50:26 -04:00
2024-01-04 10:14:09 -05:00
<!--custom.overview.start-->
<!--custom.overview.end-->
2022-11-17 15:28:20 -05:00
2024-01-04 10:14:09 -05:00
_ DynamoDB is a fully managed NoSQL database service that provides fast and predictable performance with seamless scalability. _
2022-12-20 11:23:09 -05:00
2024-01-04 10:14:09 -05:00
## ⚠ Important
2024-01-09 12:33:12 -05:00
* Running this code might result in charges to your AWS account. For more details, see [AWS Pricing ](https://aws.amazon.com/pricing/ ) and [Free Tier ](https://aws.amazon.com/free/ ).
2024-01-04 10:14:09 -05:00
* Running the tests might result in charges to your AWS account.
2022-10-04 12:50:26 -04:00
* We recommend that you grant your code least privilege. At most, grant only the minimum permissions required to perform the task. For more information, see [Grant least privilege ](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html#grant-least-privilege ).
* This code is not tested in every AWS Region. For more information, see [AWS Regional Services ](https://aws.amazon.com/about-aws/global-infrastructure/regional-product-services ).
2022-11-17 15:28:20 -05:00
2024-01-04 10:14:09 -05:00
<!--custom.important.start-->
<!--custom.important.end-->
2022-10-04 12:50:26 -04:00
## Code examples
2022-11-17 15:28:20 -05:00
2024-01-04 10:14:09 -05:00
### Prerequisites
Before using the code examples, first complete the installation and setup steps
for [Getting started ](https://docs.aws.amazon.com/sdk-for-cpp/v1/developer-guide/getting-started.html ) in the AWS SDK for
C++ Developer Guide.
This section covers how to get and build the SDK, and how to build your own code by using the SDK with a
sample Hello World-style application.
Next, for information on code example structures and how to build and run the examples, see [Getting started with the AWS SDK for C++ code examples ](https://docs.aws.amazon.com/sdk-for-cpp/v1/developer-guide/getting-started-code-examples.html ).
<!--custom.prerequisites.start-->
<!--custom.prerequisites.end-->
### Get started
- [Hello DynamoDB ](hello_dynamodb/CMakeLists.txt#L4 ) (`ListTables` )
2024-08-21 13:27:36 -07:00
### Basics
Code examples that show you how to perform the essential operations within a service.
2024-09-16 07:20:14 -04:00
- [Learn the basics ](dynamodb_getting_started_scenario.cpp )
2024-08-21 13:27:36 -07:00
2022-10-04 12:50:26 -04:00
### Single actions
2022-11-17 15:28:20 -05:00
2022-10-04 12:50:26 -04:00
Code excerpts that show you how to call individual service functions.
2022-11-17 15:28:20 -05:00
2024-04-30 12:22:08 -07:00
- [BatchExecuteStatement ](dynamodb_partiql_batch_scenario.cpp#L48 )
- [BatchGetItem ](batch_get_item.cpp#L30 )
- [BatchWriteItem ](batch_write_item.cpp#L49 )
- [CreateTable ](create_table.cpp#L27 )
- [DeleteItem ](delete_item.cpp#L22 )
- [DeleteTable ](delete_table.cpp#L23 )
- [DescribeTable ](describe_table.cpp#L23 )
- [ExecuteStatement ](dynamodb_partiql_single_scenario.cpp#L47 )
- [GetItem ](get_item.cpp#L24 )
- [ListTables ](list_tables.cpp#L26 )
- [PutItem ](put_item.cpp#L25 )
- [Query ](query_items.cpp#L22 )
- [Scan ](scan_table.cpp#L23 )
- [UpdateItem ](update_item.cpp#L24 )
2024-10-01 15:30:45 -04:00
- [UpdateTable ](update_table.cpp#L33 )
2022-11-17 15:28:20 -05:00
2022-10-04 12:50:26 -04:00
### Scenarios
2022-11-17 15:28:20 -05:00
2024-01-04 10:14:09 -05:00
Code examples that show you how to accomplish a specific task by calling multiple
functions within the same service.
2024-08-27 14:32:38 -04:00
- [Create a serverless application to manage photos ](../../example_code/cross-service/photo_asset_manager )
2024-09-16 07:20:14 -04:00
- [Query a table by using batches of PartiQL statements ](dynamodb_partiql_batch_scenario.cpp )
- [Query a table using PartiQL ](dynamodb_partiql_single_scenario.cpp )
2024-01-04 10:14:09 -05:00
<!--custom.examples.start-->
<!--custom.examples.end-->
2022-11-17 15:28:20 -05:00
2022-10-04 12:50:26 -04:00
## Run the examples
2024-01-04 10:14:09 -05:00
### Instructions
2022-11-17 15:28:20 -05:00
2024-02-08 15:35:59 -05:00
An executable is built for each source file in this folder. These executables are located in the build folder and have
2024-01-04 10:14:09 -05:00
"run_" prepended to the source file name, minus the suffix. See the "main" function in the source file for further instructions.
2022-10-04 12:50:26 -04:00
2024-01-04 10:14:09 -05:00
For example, to run the action in the source file "my_action.cpp", execute the following command from within the build folder. The command
will display any required arguments.
```
./run_my_action
```
2024-02-08 15:35:59 -05:00
If the source file is in a different folder, instructions can be found in the README in that
folder.
2024-01-04 10:14:09 -05:00
<!--custom.instructions.start-->
<!--custom.instructions.end-->
#### Hello DynamoDB
This example shows you how to get started using DynamoDB.
2024-08-21 13:27:36 -07:00
#### Learn the basics
2024-01-04 10:14:09 -05:00
This example shows you how to do the following:
- Create a table that can hold movie data.
- Put, get, and update a single movie in the table.
- Write movie data to the table from a sample JSON file.
- Query for movies that were released in a given year.
- Scan for movies that were released in a range of years.
- Delete a movie from the table, then delete the table.
2024-08-21 13:27:36 -07:00
<!--custom.basic_prereqs.dynamodb_Scenario_GettingStartedMovies.start-->
<!--custom.basic_prereqs.dynamodb_Scenario_GettingStartedMovies.end-->
<!--custom.basics.dynamodb_Scenario_GettingStartedMovies.start-->
<!--custom.basics.dynamodb_Scenario_GettingStartedMovies.end-->
#### Create a serverless application to manage photos
This example shows you how to create a serverless application that lets users manage photos using labels.
<!--custom.scenario_prereqs.cross_PAM.start-->
<!--custom.scenario_prereqs.cross_PAM.end-->
2024-01-04 10:14:09 -05:00
2024-08-21 13:27:36 -07:00
<!--custom.scenarios.cross_PAM.start-->
<!--custom.scenarios.cross_PAM.end-->
2024-01-04 10:14:09 -05:00
#### Query a table by using batches of PartiQL statements
This example shows you how to do the following:
- Get a batch of items by running multiple SELECT statements.
- Add a batch of items by running multiple INSERT statements.
- Update a batch of items by running multiple UPDATE statements.
- Delete a batch of items by running multiple DELETE statements.
<!--custom.scenario_prereqs.dynamodb_Scenario_PartiQLBatch.start-->
<!--custom.scenario_prereqs.dynamodb_Scenario_PartiQLBatch.end-->
<!--custom.scenarios.dynamodb_Scenario_PartiQLBatch.start-->
<!--custom.scenarios.dynamodb_Scenario_PartiQLBatch.end-->
#### Query a table using PartiQL
This example shows you how to do the following:
- Get an item by running a SELECT statement.
- Add an item by running an INSERT statement.
- Update an item by running an UPDATE statement.
- Delete an item by running a DELETE statement.
<!--custom.scenario_prereqs.dynamodb_Scenario_PartiQLSingle.start-->
<!--custom.scenario_prereqs.dynamodb_Scenario_PartiQLSingle.end-->
<!--custom.scenarios.dynamodb_Scenario_PartiQLSingle.start-->
<!--custom.scenarios.dynamodb_Scenario_PartiQLSingle.end-->
### Tests
⚠ Running tests might result in charges to your AWS account.
2022-10-04 12:50:26 -04:00
``` sh
cd <BUILD_DIR>
cmake <path-to-root-of-this-source-code> -DBUILD_TESTS= ON
make
2024-01-04 10:14:09 -05:00
ctest
```
<!--custom.tests.start-->
<!--custom.tests.end-->
2022-10-04 12:50:26 -04:00
## Additional resources
2022-11-17 15:28:20 -05:00
2024-01-04 10:14:09 -05:00
- [DynamoDB Developer Guide ](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Introduction.html )
- [DynamoDB API Reference ](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/Welcome.html )
- [SDK for C++ DynamoDB reference ](https://sdk.amazonaws.com/cpp/api/LATEST/aws-cpp-sdk-dynamodb/html/annotated.html )
<!--custom.resources.start-->
<!--custom.resources.end-->
---
Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
2022-10-04 12:50:26 -04:00
2024-01-04 10:14:09 -05:00
SPDX-License-Identifier: Apache-2.0