Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Wiki Markup
h2. SNS Component

The SNS component allows messages to be sent to an [Amazon Simple Notification|http://aws.amazon.com/sns] Topic. The implementation of the Amazon API is provided by the [AWS SDK|http://aws.amazon.com/sdkforjava/].

{info:title=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|http://aws.amazon.com/sns].
{info}

h3. URI Format
{code}aws-sns://topicName?options{code}
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&...}}

h3. URI Options
|| 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. |

{info:title=Required SNS component options}
You have to provide the amazonSNSClient in the [Registry] or your accessKey and secretKey to access the [Amazon's SNS|http://aws.amazon.com/sns].
{info}

h3. Usage
h4. Message headers evaluated by the producer
{div:class=confluenceTableSmall}
|| Header || Type || Description ||
| {{CamelAwsSnsSubject}} | {{String}} | The Amazon SNS message subject. If not set, the subject from the {{SnsConfiguration}} is used. |
{div}

h4. Message headers set by the producer
{div:class=confluenceTableSmall}
|| Header || Type || Description ||
| {{CamelAwsSnsMessageId}} | {{String}} | The Amazon SNS message ID. |
{div}

h4. Advanced AmazonSNSClient configuration
If your Camel Application is running behind a firewall or if you need to have more control over the AmazonSNSClient configuration, you can create your own instance:
{code}
AWSCredentials awsCredentials = new BasicAWSCredentials("myAccessKey", "mySecretKey");

ClientConfiguration clientConfiguration = new ClientConfiguration();
clientConfiguration.setProxyHost("http://myProxyHost");
clientConfiguration.setProxyPort(8080);

AmazonSNSClient client = new AmazonSNSClient(awsCredentials, clientConfiguration);
{code}

and refer to it in your Camel aws-sns component configuration:
{code}
from("direct:start")
.to("aws-sns://MyTopic?amazonSNSClient=#amazonSNSClient");
{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.68 or higher).

{include:Endpoint See Also}
- [AWS Component|aws]