AWS SQS Batch Sink
Provided by: "Apache Software Foundation"
Support Level for this Kamelet is: "Preview"
Send Batch message to an AWS SQS Queue
Configuration Options
The following table summarizes the configuration options available for the aws-sqs-batch-sink Kamelet:
| Property | Name | Description | Type | Default | Example | 
|---|---|---|---|---|---|
accessKey *  | 
Access Key  | 
The access key obtained from AWS  | 
string  | 
||
batchSeparator *  | 
Batch Separator  | 
The batch separator string  | 
string  | 
  | 
|
queueNameOrArn *  | 
Queue Name  | 
The SQS Queue name or ARN  | 
string  | 
||
region *  | 
AWS Region  | 
The AWS region to connect to  | 
string  | 
  | 
|
secretKey *  | 
Secret Key  | 
The secret key obtained from AWS  | 
string  | 
||
amazonAWSHost  | 
AWS Host  | 
The hostname of the Amazon AWS cloud.  | 
string  | 
||
autoCreateQueue  | 
Autocreate Queue  | 
Setting the autocreation of the SQS queue.  | 
boolean  | 
  | 
|
protocol  | 
Protocol  | 
The underlying protocol used to communicate with SQS  | 
string  | 
  | 
  | 
| Fields marked with (*) are mandatory. | 
Usage
This section summarizes how the aws-sqs-batch-sink can be used in various contexts.
Knative Sink
The aws-sqs-batch-sink Kamelet can be used as Knative sink by binding it to a Knative object.
apiVersion: camel.apache.org/v1alpha1
kind: KameletBinding
metadata:
  name: aws-sqs-batch-sink-binding
spec:
  source:
    ref:
      kind: Channel
      apiVersion: messaging.knative.dev/v1
      name: mychannel
  sink:
    ref:
      kind: Kamelet
      apiVersion: camel.apache.org/v1alpha1
      name: aws-sqs-batch-sink
    properties:
      accessKey: "The Access Key"
      batchSeparator: ","
      queueNameOrArn: "The Queue Name"
      region: "eu-west-1"
      secretKey: "The Secret Key"
Make sure you have Camel K installed into the Kubernetes cluster you’re connected to.
Save the aws-sqs-batch-sink-binding.yaml file into your hard drive, then configure it according to your needs.
You can run the sink using the following command:
kubectl apply -f aws-sqs-batch-sink-binding.yaml
Binding to Knative using the Kamel CLI:
The procedure described above can be simplified into a single execution of the kamel bind command:
kamel bind channel:mychannel aws-sqs-batch-sink -p "sink.accessKey=The Access Key" -p "sink.batchSeparator=," -p "sink.queueNameOrArn=The Queue Name" -p "sink.region=eu-west-1" -p "sink.secretKey=The Secret Key"
This will create the KameletBinding under the hood and apply it to the current namespace in the cluster.
Kafka Sink
The aws-sqs-batch-sink Kamelet can be used as Kafka sink by binding it to a Kafka topic.
apiVersion: camel.apache.org/v1alpha1
kind: KameletBinding
metadata:
  name: aws-sqs-batch-sink-binding
spec:
  source:
    ref:
      kind: KafkaTopic
      apiVersion: kafka.strimzi.io/v1beta1
      name: my-topic
  sink:
    ref:
      kind: Kamelet
      apiVersion: camel.apache.org/v1alpha1
      name: aws-sqs-batch-sink
    properties:
      accessKey: "The Access Key"
      batchSeparator: ","
      queueNameOrArn: "The Queue Name"
      region: "eu-west-1"
      secretKey: "The Secret Key"
Ensure that you’ve installed Strimzi and created a topic named my-topic in the current namespace.
Make also sure you have Camel K installed into the Kubernetes cluster you’re connected to.
Save the aws-sqs-batch-sink-binding.yaml file into your hard drive, then configure it according to your needs.
You can run the sink using the following command:
kubectl apply -f aws-sqs-batch-sink-binding.yaml
Binding to Kafka using the Kamel CLI:
The procedure described above can be simplified into a single execution of the kamel bind command:
kamel bind kafka.strimzi.io/v1beta1:KafkaTopic:my-topic aws-sqs-batch-sink -p "sink.accessKey=The Access Key" -p "sink.batchSeparator=," -p "sink.queueNameOrArn=The Queue Name" -p "sink.region=eu-west-1" -p "sink.secretKey=The Secret Key"
This will create the KameletBinding under the hood and apply it to the current namespace in the cluster.