Available as of Camel 2.8
The SNS component allows messages to be sent to an Amazon Simple Notification Topic. The implementation of the Amazon API is provided by theAWS SDK.
![]() | Prerequisites |
|---|---|
You must have a valid Amazon Web Services developer account, and be signed up to use Amazon SNS. More information are available at Amazon SNS. |
aws-sns://topicName[?options]
The topic will be created if they don't already exists.
You can append query options to the URI in the following format, ?options=value&option2=value&...
| Name | Default Value | Context | Description |
|---|---|---|---|
| amazonSNSClient | null
|
Producer | Reference to a com.amazonaws.services.sqs.AmazonSNSClient in the Registry. |
| accessKey | null
|
Producer | Amazon AWS Access Key |
| secretKey | null
|
Producer | Amazon AWS Secret Key |
| subject | null
|
Producer | The subject which is used if the message header 'CamelAwsSnsSubject' is not present. |
| amazonSNSEndpoint | null
|
Producer | The region with which the AWS-SNS client wants to work with. |
| policy | null
|
Producer | *Camel 2.8.4*: The policy for this queue to set in the com.amazonaws.services.sns.model.SetTopicAttributesRequest. |
![]() | Required SNS component options |
|---|---|
You have to provide the amazonSNSClient in the Registry or your accessKey and secretKey to access the Amazon's SNS. |
| Header | Type | Description |
|---|---|---|
CamelAwsSnsSubject
|
String
|
The Amazon SNS message subject. If not set, the subject from the SnsConfiguration is used. |
| Header | Type | Description |
|---|---|---|
CamelAwsSnsMessageId
|
String
|
The Amazon SNS message ID. |
If you need more control over the AmazonSNSClient configuration you can create your own instance and refer to it from the URI:
from("direct:start")
.to("aws-sns://MyTopic?amazonSNSClient=#amazonSNSClient");
The #amazonSNSClient refers to a AmazonSNSClient 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);
AmazonSNSClient amazonSNSClient = new AmazonSNSClient(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.8 or higher).






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


