Google Pubsub Source
Provided by: "Apache Software Foundation"
Support Level for this Kamelet is: "Preview"
Consume messages from Google Pubsub.
The serviceAccountKey property needs to be encoded in base64, so when you pass it as parameter, don’t forget to encode it.
Configuration Options
The following table summarizes the configuration options available for the google-pubsub-source
Kamelet:
Property | Name | Description | Type | Default | Example |
---|---|---|---|---|---|
projectId * |
Project Id |
The Google Cloud PubSub Project Id |
string |
||
serviceAccountKey * |
Service Account Key |
The Service account key that can be used as credentials for the PubSub publisher/subscriber |
binary |
||
subscriptionName * |
Subscription Name |
The Subscription Name |
string |
||
concurrentConsumers |
Concurrent Consumers |
The number of parallel streams consuming from the subscription |
integer |
|
|
maxMessagesPerPoll |
Max Messages Per Poll |
The max number of messages to receive from the server in a single API call |
integer |
|
|
synchronousPull |
Synchronous Pull |
If Synchronously pull batches of messages is enabled or not |
boolean |
|
Fields marked with (*) are mandatory. |
Usage
This section summarizes how the google-pubsub-source
can be used in various contexts.
Knative Source
The google-pubsub-source
Kamelet can be used as Knative source by binding it to a Knative object.
apiVersion: camel.apache.org/v1alpha1
kind: KameletBinding
metadata:
name: google-pubsub-source-binding
spec:
source:
ref:
kind: Kamelet
apiVersion: camel.apache.org/v1alpha1
name: google-pubsub-source
properties:
projectId: "The Project Id"
serviceAccountKey: "The Service Account Key"
subscriptionName: "The Subscription Name"
sink:
ref:
kind: Channel
apiVersion: messaging.knative.dev/v1
name: mychannel
Make sure you have Camel K installed into the Kubernetes cluster you’re connected to.
Save the google-pubsub-source-binding.yaml
file into your hard drive, then configure it according to your needs.
You can run the source using the following command:
kubectl apply -f google-pubsub-source-binding.yaml
Dependencies
The Kamelet needs the following dependencies:
-
camel:kamelet
-
camel:google-pubsub
-
camel:jackson
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 google-pubsub-source -p "source.projectId=The Project Id" -p "source.serviceAccountKey=The Service Account Key" -p "source.subscriptionName=The Subscription Name" channel:mychannel
This will create the KameletBinding under the hood and apply it to the current namespace in the cluster.
Kafka Source
The google-pubsub-source
Kamelet can be used as Kafka source by binding it to a Kafka topic.
apiVersion: camel.apache.org/v1alpha1
kind: KameletBinding
metadata:
name: google-pubsub-source-binding
spec:
source:
ref:
kind: Kamelet
apiVersion: camel.apache.org/v1alpha1
name: google-pubsub-source
properties:
projectId: "The Project Id"
serviceAccountKey: "The Service Account Key"
subscriptionName: "The Subscription Name"
sink:
ref:
kind: KafkaTopic
apiVersion: kafka.strimzi.io/v1beta1
name: my-topic
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 google-pubsub-source-binding.yaml
file into your hard drive, then configure it according to your needs.
You can run the source using the following command:
kubectl apply -f google-pubsub-source-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 google-pubsub-source -p "source.projectId=The Project Id" -p "source.serviceAccountKey=The Service Account Key" -p "source.subscriptionName=The Subscription Name" kafka.strimzi.io/v1beta1:KafkaTopic:my-topic
This will create the KameletBinding under the hood and apply it to the current namespace in the cluster.