Available as of Camel 2.10
The DynamoDB component supports storing and retrieving data from/to Amazon's DynamoDB service.
![]() | Prerequisites |
|---|---|
You must have a valid Amazon Web Services developer account, and be signed up to use Amazon DynamoDB. More information are available at Amazon DynamoDB. |
aws-ddb://domainName[?options]
You can append query options to the URI in the following format, ?options=value&option2=value&...
| Name | Default Value | Context | Description |
|---|---|---|---|
| amazonDDBClient | null
|
Producer | Reference to a com.amazonaws.services.dynamodb.AmazonDynamoDB in the Registry. |
| accessKey | null
|
Producer | Amazon AWS Access Key |
| secretKey | null
|
Producer | Amazon AWS Secret Key |
| amazonDdbEndpoint | null
|
Producer | The region with which the AWS-DDB client wants to work with. |
| tableName | null
|
Producer | The name of the table currently worked with. |
| readCapacity | 0
|
Producer | The provisioned throughput to reserve for reading resources from your table |
| writeCapacity | 0
|
Producer | The provisioned throughput to reserved for writing resources to your table |
| consistentRead | false
|
Producer | Determines whether or not strong consistency should be enforced when data is read. |
| operation | PutAttributes
|
Producer | Valid values are BatchGetItems, DeleteItem, DeleteTable, DescribeTable, GetItem, PutItem, Query, Scan, UpdateItem, UpdateTable. |
![]() | Required DDB component options |
|---|---|
You have to provide the amazonDDBClient in the Registry or your accessKey and secretKey to access the Amazon's DynamoDB. |
| Header | Type | Description |
|---|---|---|
CamelAwsDdbBatchItems
|
Map<String, KeysAndAttributes>
|
A map of the table name and corresponding items to get by primary key. |
CamelAwsDdbTableName
|
String
|
Table Name for this operation. |
CamelAwsDdbKey
|
Key
|
The primary key that uniquely identifies each item in a table. |
CamelAwsDdbReturnValues
|
String
|
Use this parameter if you want to get the attribute name-value pairs before or after they are modified(NONE, ALL_OLD, UPDATED_OLD, ALL_NEW, UPDATED_NEW). |
CamelAwsDdbUpdateCondition
|
Map<String, ExpectedAttributeValue>
|
Designates an attribute for a conditional modification. |
CamelAwsDdbAttributeNames
|
Collection<String>
|
If attribute names are not specified then all attributes will be returned. |
CamelAwsDdbConsistentRead
|
Boolean
|
If set to true, then a consistent read is issued, otherwise eventually consistent is used. |
CamelAwsDdbItem
|
Map<String, AttributeValue>
|
A map of the attributes for the item, and must include the primary key values that define the item. |
CamelAwsDdbExactCount
|
Boolean
|
If set to true, Amazon DynamoDB returns a total number of items that match the query parameters, instead of a list of the matching items and their attributes. |
CamelAwsDdbStartKey
|
Key
|
Primary key of the item from which to continue an earlier query. |
CamelAwsDdbHashKeyValue
|
AttributeValue
|
Value of the hash component of the composite primary key. |
CamelAwsDdbLimit
|
Integer
|
The maximum number of items to return. |
CamelAwsDdbScanRangeKeyCondition
|
Condition
|
A container for the attribute values and comparison operators to use for the query. |
CamelAwsDdbScanIndexForward
|
Boolean
|
Specifies forward or backward traversal of the index. |
CamelAwsDdbScanFilter
|
Map<String, Condition>
|
Evaluates the scan results and returns only the desired values. |
CamelAwsDdbUpdateValues
|
Map<String, AttributeValueUpdate>
|
Map of attribute name to the new value and action for the update. |
| Header | Type | Description |
|---|---|---|
CamelAwsDdbBatchResponse
|
Map<String,BatchResponse>
|
Table names and the respective item attributes from the tables. |
CamelAwsDdbUnprocessedKeys
|
Map<String,KeysAndAttributes>
|
Contains a map of tables and their respective keys that were not processed with the current response. |
| Header | Type | Description |
|---|---|---|
CamelAwsDdbAttributes
|
Map<String, AttributeValue>
|
The list of attributes returned by the operation. |
| Header | Type | Description |
|---|---|---|
CamelAwsDdbProvisionedThroughput
|
ProvisionedThroughputDescription
|
The value of the ProvisionedThroughput property for this table |
CamelAwsDdbCreationDate
|
Date
|
Creation DateTime of this table. |
CamelAwsDdbTableItemCount
|
Long
|
Item count for this table. |
CamelAwsDdbKeySchema
|
KeySchema
|
The KeySchema that identifies the primary key for this table. |
CamelAwsDdbTableName
|
String
|
The table name. |
CamelAwsDdbTableSize
|
Long
|
The table size in bytes. |
CamelAwsDdbTableStatus
|
String
|
The status of the table: CREATING, UPDATING, DELETING, ACTIVE |
| Header | Type | Description |
|---|---|---|
CamelAwsDdbProvisionedThroughput
|
{{ProvisionedThroughputDescription} | The value of the ProvisionedThroughput property for this table |
CamelAwsDdbCreationDate
|
Date
|
Creation DateTime of this table. |
CamelAwsDdbTableItemCount
|
Long
|
Item count for this table. |
CamelAwsDdbKeySchema
|
{{KeySchema | The KeySchema that identifies the primary key for this table. |
CamelAwsDdbTableName
|
String
|
The table name. |
CamelAwsDdbTableSize
|
Long
|
The table size in bytes. |
CamelAwsDdbTableStatus
|
String
|
The status of the table: CREATING, UPDATING, DELETING, ACTIVE |
CamelAwsDdbReadCapacity
|
Long
|
ReadCapacityUnits property of this table. |
CamelAwsDdbWriteCapacity
|
Long
|
WriteCapacityUnits property of this table. |
| Header | Type | Description |
|---|---|---|
CamelAwsDdbAttributes
|
Map<String, AttributeValue>
|
The list of attributes returned by the operation. |
| Header | Type | Description |
|---|---|---|
CamelAwsDdbAttributes
|
Map<String, AttributeValue>
|
The list of attributes returned by the operation. |
| Header | Type | Description |
|---|---|---|
CamelAwsDdbItems
|
List<java.util.Map<String,AttributeValue>>
|
The list of attributes returned by the operation. |
CamelAwsDdbLastEvaluatedKey
|
Key
|
Primary key of the item where the query operation stopped, inclusive of the previous result set. |
CamelAwsDdbConsumedCapacity
|
Double
|
The number of Capacity Units of the provisioned throughput of the table consumed during the operation. |
CamelAwsDdbCount
|
Integer
|
Number of items in the response. |
| Header | Type | Description |
|---|---|---|
CamelAwsDdbItems
|
List<java.util.Map<String,AttributeValue>>
|
The list of attributes returned by the operation. |
CamelAwsDdbLastEvaluatedKey
|
Key
|
Primary key of the item where the query operation stopped, inclusive of the previous result set. |
CamelAwsDdbConsumedCapacity
|
Double
|
The number of Capacity Units of the provisioned throughput of the table consumed during the operation. |
CamelAwsDdbCount
|
Integer
|
Number of items in the response. |
CamelAwsDdbScannedCount
|
Integer
|
Number of items in the complete scan before any filters are applied. |
| Header | Type | Description |
|---|---|---|
CamelAwsDdbAttributes
|
Map<String, AttributeValue>
|
The list of attributes returned by the operation. |
If you need more control over the AmazonDynamoDBClient configuration you can create your own instance and refer to it from the URI:
from("direct:start")
.to("aws-ddb://domainName?amazonDDBClient=#amazonDDBClient");
The #amazonDDBClient refers to a AmazonDynamoDB in the Registry.
For example if your Camel Application is running behind a firewall:
AWSCredentials awsCredentials = new BasicAWSCredentials("myAccessKey", "mySecretKey");
ClientConfiguration clientConfiguration = new ClientConfiguration();
clientConfiguration.setProxyHost("http://myProxyHost");
clientConfiguration.setProxyPort(8080);
AmazonDynamoDB amazonDDBClient = new AmazonDynamoDBClient(awsCredentials, clientConfiguration);
Maven users will need to add the following dependency to their pom.xml.
![]() | pom.xml |
|---|---|
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-aws</artifactId>
<version>${camel-version}</version>
</dependency>
|
where ${camel-version} must be replaced by the actual version of Camel (2.10 or higher).






![[Important]](imagesdb/important.gif)
![[Note]](imagesdb/note.gif)


