THIS IS A TEST INSTANCE. ALL YOUR CHANGES WILL BE LOST!!!!
Wiki Markup |
---|
h2. DDB Component *Available as of Camel 2.10* The DynamoDB component supports storing and retrieving data from/to [Amazon's DynamoDB|http://aws.amazon.com/dynamodb] service. {info:title=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|http://aws.amazon.com/dynamodb]. {info} h3. URI Format {code} aws-ddb://domainName[?options] {code} You can append query options to the URI in the following format, ?options=value&option2=value&... h3. URI Options || 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.| {info:title=Required DDB component options} You have to provide the amazonDDBClient in the [Registry] or your accessKey and secretKey to access the [Amazon's DynamoDB|http://aws.amazon.com/dynamodb]. {info} h3. Usage h4. Message headers evaluated by the DDB producer {div:class=confluenceTableSmall} || 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. | {div} h4. Message headers set during BatchGetItems operation {div:class=confluenceTableSmall} || 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. | {div} h4. Message headers set during DeleteItem operation {div:class=confluenceTableSmall} || Header || Type || Description || | {{CamelAwsDdbAttributes}} | {{Map<String, AttributeValue>}} | The list of attributes returned by the operation. | {div} h4. Message headers set during DeleteTable operation {div:class=confluenceTableSmall} || 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 | {div} h4. Message headers set during DescribeTable operation {div:class=confluenceTableSmall} || 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. | {div} h4. Message headers set during GetItem operation {div:class=confluenceTableSmall} || Header || Type || Description || | {{CamelAwsDdbAttributes}} | {{Map<String, AttributeValue>}} | The list of attributes returned by the operation. | {div} h4. Message headers set during PutItem operation {div:class=confluenceTableSmall} || Header || Type || Description || | {{CamelAwsDdbAttributes}} | {{Map<String, AttributeValue>}} | The list of attributes returned by the operation. | {div} h4. Message headers set during Query operation {div:class=confluenceTableSmall} || 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. | {div} h4. Message headers set during Scan operation {div:class=confluenceTableSmall} || 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. | {div} h4. Message headers set during UpdateItem operation {div:class=confluenceTableSmall} || Header || Type || Description || | {{CamelAwsDdbAttributes}} | {{Map<String, AttributeValue>}} | The list of attributes returned by the operation. | {div} h4. Advanced AmazonDynamoDB configuration If you need more control over the {{AmazonDynamoDBClient}} configuration you can create your own instance and refer to it from the URI: {code} from("direct:start") .to("aws-ddb://domainName?amazonDDBClient=#amazonDDBClient"); {code} The {{#amazonDDBClient}} refers to a {{AmazonDynamoDB}} in the [Registry]. For example if your Camel Application is running behind a firewall: {code} AWSCredentials awsCredentials = new BasicAWSCredentials("myAccessKey", "mySecretKey"); ClientConfiguration clientConfiguration = new ClientConfiguration(); clientConfiguration.setProxyHost("http://myProxyHost"); clientConfiguration.setProxyPort(8080); AmazonDynamoDB amazonDDBClient = new AmazonDynamoDBClient(awsCredentials, clientConfiguration); {code} h3. Dependencies Maven users will need to add the following dependency to their pom.xml. {code:xml|title=pom.xml} <dependency> <groupId>org.apache.camel</groupId> <artifactId>camel-aws</artifactId> <version>${camel-version}</version> </dependency> {code} where {{$\{camel-version\}}} must be replaced by the actual version of Camel (2.10 or higher). {include:Endpoint See Also} - [AWS Component|AWS] |