--- apiVersion: v1 kind: List items: - apiVersion: v1 kind: ConfigMap metadata: labels: funktion.fabric8.io/kind: Connector provider: fabric8 project: connector-aws-sns version: 1.1.24 group: io.fabric8.funktion.connector name: aws-sns data: deployment.yml: | --- apiVersion: extensions/v1beta1 kind: Deployment metadata: labels: funktion.fabric8.io/kind: Subscription connector: aws-sns spec: replicas: 1 template: metadata: labels: funktion.fabric8.io/kind: Subscription connector: aws-sns spec: containers: - image: fabric8/connector-aws-sns:1.1.24 name: connector schema.yml: | --- component: kind: component scheme: aws-sns syntax: aws-sns:topicNameOrArn title: AWS Simple Notification System description: The aws-sns component is used for sending messages to an Amazon Simple Notification Topic. label: cloud,mobile,messaging deprecated: false async: false producerOnly: true javaType: org.apache.camel.component.aws.sns.SnsComponent groupId: org.apache.camel artifactId: camel-aws version: 2.18.1 componentProperties: {} properties: topicNameOrArn: kind: path group: producer required: true type: string javaType: java.lang.String deprecated: false secret: false description: Topic name or ARN accessKey: kind: parameter group: producer type: string javaType: java.lang.String deprecated: false secret: false description: Amazon AWS Access Key amazonSNSClient: kind: parameter group: producer type: object javaType: com.amazonaws.services.sns.AmazonSNS deprecated: false secret: false description: To use the AmazonSNS as the client amazonSNSEndpoint: kind: parameter group: producer type: string javaType: java.lang.String deprecated: false secret: false description: The region with which the AWS-SNS client wants to work with. messageStructure: kind: parameter group: producer type: string javaType: java.lang.String deprecated: false secret: false description: The message structure to use such as json policy: kind: parameter group: producer type: string javaType: java.lang.String deprecated: false secret: false description: The policy for this queue proxyHost: kind: parameter group: producer type: string javaType: java.lang.String deprecated: false secret: false description: To define a proxy host when instantiating the SQS client proxyPort: kind: parameter group: producer type: integer javaType: java.lang.Integer deprecated: false secret: false description: To define a proxy port when instantiating the SQS client secretKey: kind: parameter group: producer type: string javaType: java.lang.String deprecated: false secret: false description: Amazon AWS Secret Key subject: kind: parameter group: producer type: string javaType: java.lang.String deprecated: false secret: false description: The subject which is used if the message header 'CamelAwsSnsSubject' is not present. synchronous: kind: parameter group: advanced label: advanced type: boolean javaType: boolean deprecated: false secret: false defaultValue: false description: Sets whether synchronous processing should be strictly used or Camel is allowed to use asynchronous processing (if supported). documentation.adoc: |+ [[AWS-SNS-SNSComponent]] SNS Component ~~~~~~~~~~~~~ *Available as of Camel 2.8* The SNS component allows messages to be sent to an http://aws.amazon.com/sns[Amazon Simple Notification] Topic. The implementation of the Amazon API is provided by the??http://aws.amazon.com/sdkforjava/[AWS 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 http://aws.amazon.com/sns[Amazon SNS]. [[AWS-SNS-URIFormat]] URI Format ^^^^^^^^^^ [source,java] ----------------------------- aws-sns://topicNameOrArn[?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&...` [[AWS-SNS-URIOptions]] URI Options ^^^^^^^^^^^ // component options: START The AWS Simple Notification System component has no options. // component options: END // endpoint options: START The AWS Simple Notification System component supports 11 endpoint options which are listed below: {% raw %} [width="100%",cols="2,1,1m,1m,5",options="header"] |======================================================================= | Name | Group | Default | Java Type | Description | topicNameOrArn | producer | | String | *Required* Topic name or ARN | accessKey | producer | | String | Amazon AWS Access Key | amazonSNSClient | producer | | AmazonSNS | To use the AmazonSNS as the client | amazonSNSEndpoint | producer | | String | The region with which the AWS-SNS client wants to work with. | messageStructure | producer | | String | The message structure to use such as json | policy | producer | | String | The policy for this queue | proxyHost | producer | | String | To define a proxy host when instantiating the SQS client | proxyPort | producer | | Integer | To define a proxy port when instantiating the SQS client | secretKey | producer | | String | Amazon AWS Secret Key | subject | producer | | String | The subject which is used if the message header 'CamelAwsSnsSubject' is not present. | synchronous | advanced | false | boolean | Sets whether synchronous processing should be strictly used or Camel is allowed to use asynchronous processing (if supported). |======================================================================= {% endraw %} // endpoint options: END Required SNS component options You have to provide the amazonSNSClient in the link:registry.html[Registry] or your accessKey and secretKey to access the http://aws.amazon.com/sns[Amazon's SNS]. [[AWS-SNS-Usage]] Usage ^^^^^ [[AWS-SNS-MessageheadersevaluatedbytheSNSproducer]] Message headers evaluated by the SNS producer +++++++++++++++++++++++++++++++++++++++++++++ [width="100%",cols="10%,10%,80%",options="header",] |======================================================================= |Header |Type |Description |`CamelAwsSnsSubject` |`String` |The Amazon SNS message subject. If not set, the subject from the `SnsConfiguration` is used. |======================================================================= [[AWS-SNS-MessageheaderssetbytheSNSproducer]] Message headers set by the SNS producer +++++++++++++++++++++++++++++++++++++++ [width="100%",cols="10%,10%,80%",options="header",] |======================================================================= |Header |Type |Description |`CamelAwsSnsMessageId` |`String` |The Amazon SNS message ID. |======================================================================= [[AWS-SNS-AdvancedAmazonSNSconfiguration]] Advanced AmazonSNS configuration ++++++++++++++++++++++++++++++++ If you need more control over the `AmazonSNS` instance configuration you can create your own instance and refer to it from the URI: [source,java] ------------------------------------------------- from("direct:start") .to("aws-sns://MyTopic?amazonSNSClient=#client"); ------------------------------------------------- The `#client` refers to a `AmazonSNS` in the link:registry.html[Registry]. For example if your Camel Application is running behind a firewall: [source,java] -------------------------------------------------------------------------------------- AWSCredentials awsCredentials = new BasicAWSCredentials("myAccessKey", "mySecretKey"); ClientConfiguration clientConfiguration = new ClientConfiguration(); clientConfiguration.setProxyHost("http://myProxyHost"); clientConfiguration.setProxyPort(8080); AmazonSNS client = new AmazonSNSClient(awsCredentials, clientConfiguration); registry.bind("client", client); -------------------------------------------------------------------------------------- [[AWS-SNS-Dependencies]] Dependencies ^^^^^^^^^^^^ Maven users will need to add the following dependency to their pom.xml. *pom.xml* [source,xml] --------------------------------------- org.apache.camel camel-aws ${camel-version} --------------------------------------- where `${camel-version`} must be replaced by the actual version of Camel (2.8 or higher). [[AWS-SNS-SeeAlso]] See Also ^^^^^^^^ * link:configuring-camel.html[Configuring Camel] * link:component.html[Component] * link:endpoint.html[Endpoint] * link:getting-started.html[Getting Started] * link:aws.html[AWS Component]