Ce contenu n'est pas disponible dans la langue sélectionnée.
Chapter 22. AWS DynamoDB Component
Available as of Camel version 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.
22.1. URI Format Copier lienLien copié sur presse-papiers!
aws-ddb://domainName[?options]
aws-ddb://domainName[?options]
You can append query options to the URI in the following format, ?options=value&option2=value&…
22.2. URI Options Copier lienLien copié sur presse-papiers!
The AWS DynamoDB component supports 5 options which are listed below.
Name | Description | Default | Type |
---|---|---|---|
configuration (advanced) | The AWS DDB default configuration | DdbConfiguration | |
accessKey (producer) | Amazon AWS Access Key | String | |
secretKey (producer) | Amazon AWS Secret Key | String | |
region (producer) | The region in which DDB client needs to work | String | |
resolveProperty Placeholders (advanced) | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | boolean |
The AWS DynamoDB endpoint is configured using URI syntax:
aws-ddb:tableName
aws-ddb:tableName
with the following path and query parameters:
22.2.1. Path Parameters (1 parameters): Copier lienLien copié sur presse-papiers!
Name | Description | Default | Type |
---|---|---|---|
tableName | Required The name of the table currently worked with. | String |
22.2.2. Query Parameters (13 parameters): Copier lienLien copié sur presse-papiers!
Name | Description | Default | Type |
---|---|---|---|
amazonDDBClient (producer) | To use the AmazonDynamoDB as the client | AmazonDynamoDB | |
consistentRead (producer) | Determines whether or not strong consistency should be enforced when data is read. | false | boolean |
keyAttributeName (producer) | Attribute name when creating table | String | |
keyAttributeType (producer) | Attribute type when creating table | String | |
operation (producer) | What operation to perform | PutItem | DdbOperations |
proxyHost (producer) | To define a proxy host when instantiating the DDB client | String | |
proxyPort (producer) | To define a proxy port when instantiating the DDB client | Integer | |
readCapacity (producer) | The provisioned throughput to reserve for reading resources from your table | Long | |
region (producer) | The region in which DDB client needs to work | String | |
writeCapacity (producer) | The provisioned throughput to reserved for writing resources to your table | Long | |
synchronous (advanced) | Sets whether synchronous processing should be strictly used, or Camel is allowed to use asynchronous processing (if supported). | false | boolean |
accessKey (security) | Amazon AWS Access Key | String | |
secretKey (security) | Amazon AWS Secret Key | String |
Required DDB component options
You have to provide the amazonDDBClient in the Registry or your accessKey and secretKey to access the Amazon’s DynamoDB.
22.3. Usage Copier lienLien copié sur presse-papiers!
22.3.1. Message headers evaluated by the DDB producer Copier lienLien copié sur presse-papiers!
Header | Type | Description |
---|---|---|
|
| A map of the table name and corresponding items to get by primary key. |
|
| Table Name for this operation. |
|
| The primary key that uniquely identifies each item in a table. From Camel 2.16.0 the type of this header is Map<String, AttributeValue> and not Key |
|
| 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). |
|
| Designates an attribute for a conditional modification. |
|
| If attribute names are not specified then all attributes will be returned. |
|
| If set to true, then a consistent read is issued, otherwise eventually consistent is used. |
|
| If set will be used as Secondary Index for Query operation. |
|
| A map of the attributes for the item, and must include the primary key values that define the item. |
|
| 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. From Camel 2.16.0 this header doesn’t exist anymore. |
|
| From Camel 2.16.0. This header specify the selection criteria for the query, and merge together the two old headers CamelAwsDdbHashKeyValue and CamelAwsDdbScanRangeKeyCondition |
|
| Primary key of the item from which to continue an earlier query. |
|
| Value of the hash component of the composite primary key. From Camel 2.16.0 this header doesn’t exist anymore. |
|
| The maximum number of items to return. |
|
| A container for the attribute values and comparison operators to use for the query.From Camel 2.16.0 this header doesn’t exist anymore. |
|
| Specifies forward or backward traversal of the index. |
|
| Evaluates the scan results and returns only the desired values. |
|
| Map of attribute name to the new value and action for the update. |
22.3.2. Message headers set during BatchGetItems operation Copier lienLien copié sur presse-papiers!
Header | Type | Description |
---|---|---|
|
| Table names and the respective item attributes from the tables. |
|
| Contains a map of tables and their respective keys that were not processed with the current response. |
22.3.3. Message headers set during DeleteItem operation Copier lienLien copié sur presse-papiers!
Header | Type | Description |
---|---|---|
|
| The list of attributes returned by the operation. |
22.3.4. Message headers set during DeleteTable operation Copier lienLien copié sur presse-papiers!
Header | Type | Description |
---|---|---|
| ||
| The value of the ProvisionedThroughput property for this table | |
|
| Creation DateTime of this table. |
|
| Item count for this table. |
|
| The KeySchema that identifies the primary key for this table. From Camel 2.16.0 the type of this header is List<KeySchemaElement> and not KeySchema |
|
| The table name. |
|
| The table size in bytes. |
|
| The status of the table: CREATING, UPDATING, DELETING, ACTIVE |
22.3.5. Message headers set during DescribeTable operation Copier lienLien copié sur presse-papiers!
Header | Type | Description |
---|---|---|
| {{ProvisionedThroughputDescription}} | The value of the ProvisionedThroughput property for this table |
|
| Creation DateTime of this table. |
|
| Item count for this table. |
| {{KeySchema}} | The KeySchema that identifies the primary key for this table. From Camel 2.16.0 the type of this header is List<KeySchemaElement> and not KeySchema |
|
| The table name. |
|
| The table size in bytes. |
|
| The status of the table: CREATING, UPDATING, DELETING, ACTIVE |
|
| ReadCapacityUnits property of this table. |
|
| WriteCapacityUnits property of this table. |
22.3.6. Message headers set during GetItem operation Copier lienLien copié sur presse-papiers!
Header | Type | Description |
---|---|---|
|
| The list of attributes returned by the operation. |
22.3.7. Message headers set during PutItem operation Copier lienLien copié sur presse-papiers!
Header | Type | Description |
---|---|---|
|
| The list of attributes returned by the operation. |
22.3.8. Message headers set during Query operation Copier lienLien copié sur presse-papiers!
Header | Type | Description |
---|---|---|
|
| The list of attributes returned by the operation. |
|
| Primary key of the item where the query operation stopped, inclusive of the previous result set. |
|
| The number of Capacity Units of the provisioned throughput of the table consumed during the operation. |
|
| Number of items in the response. |
22.3.9. Message headers set during Scan operation Copier lienLien copié sur presse-papiers!
Header | Type | Description |
---|---|---|
|
| The list of attributes returned by the operation. |
|
| Primary key of the item where the query operation stopped, inclusive of the previous result set. |
|
| The number of Capacity Units of the provisioned throughput of the table consumed during the operation. |
|
| Number of items in the response. |
|
| Number of items in the complete scan before any filters are applied. |
22.3.10. Message headers set during UpdateItem operation Copier lienLien copié sur presse-papiers!
Header | Type | Description |
---|---|---|
|
| The list of attributes returned by the operation. |
22.3.11. Advanced AmazonDynamoDB configuration Copier lienLien copié sur presse-papiers!
If you need more control over the AmazonDynamoDB
instance configuration you can create your own instance and refer to it from the URI:
from("direct:start") .to("aws-ddb://domainName?amazonDDBClient=#client");
from("direct:start")
.to("aws-ddb://domainName?amazonDDBClient=#client");
The #client
refers to a AmazonDynamoDB
in the Registry.
For example if your Camel Application is running behind a firewall:
22.4. Dependencies Copier lienLien copié sur presse-papiers!
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>
<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).
22.5. See Also Copier lienLien copié sur presse-papiers!
- Configuring Camel
- Component
- Endpoint
- Getting Started
- AWS Component