Dieser Inhalt ist in der von Ihnen ausgewählten Sprache nicht verfügbar.
Chapter 43. Protobuf Deserialize Action
Deserialize payload to Protobuf
43.1. Configuration Options Link kopierenLink in die Zwischenablage kopiert!
The following table summarizes the configuration options available for the protobuf-deserialize-action Kamelet:
| Property | Name | Description | Type | Default | Example |
|---|---|---|---|---|---|
| schema * | Schema | The Protobuf schema to use during serialization (as single-line) | string |
|
Fields marked with an asterisk (*) are mandatory.
43.2. Dependencies Link kopierenLink in die Zwischenablage kopiert!
At runtime, the protobuf-deserialize-action Kamelet relies upon the presence of the following dependencies:
- mvn:org.apache.camel.kamelets:camel-kamelets-utils:1.0.0.fuse-800048-redhat-00001
- camel:kamelet
- camel:core
- camel:jackson-protobuf
43.3. Usage Link kopierenLink in die Zwischenablage kopiert!
This section describes how you can use the protobuf-deserialize-action.
43.3.1. Knative Action Link kopierenLink in die Zwischenablage kopiert!
You can use the protobuf-deserialize-action Kamelet as an intermediate step in a Knative binding.
protobuf-deserialize-action-binding.yaml
apiVersion: camel.apache.org/v1alpha1
kind: KameletBinding
metadata:
name: protobuf-deserialize-action-binding
spec:
source:
ref:
kind: Kamelet
apiVersion: camel.apache.org/v1alpha1
name: timer-source
properties:
message: '{"first":"Ada","last":"Lovelace"}'
steps:
- ref:
kind: Kamelet
apiVersion: camel.apache.org/v1alpha1
name: json-deserialize-action
- ref:
kind: Kamelet
apiVersion: camel.apache.org/v1alpha1
name: protobuf-serialize-action
properties:
schema: "message Person { required string first = 1; required string last = 2; }"
- ref:
kind: Kamelet
apiVersion: camel.apache.org/v1alpha1
name: protobuf-deserialize-action
properties:
schema: "message Person { required string first = 1; required string last = 2; }"
- ref:
kind: Kamelet
apiVersion: camel.apache.org/v1alpha1
name: json-serialize-action
sink:
ref:
kind: Channel
apiVersion: messaging.knative.dev/v1
name: mychannel
43.3.1.1. Prerequisite Link kopierenLink in die Zwischenablage kopiert!
Make sure you have "Red Hat Integration - Camel K" installed into the OpenShift cluster you’re connected to.
43.3.1.2. Procedure for using the cluster CLI Link kopierenLink in die Zwischenablage kopiert!
-
Save the
protobuf-deserialize-action-binding.yamlfile to your local drive, and then edit it as needed for your configuration. Run the action by using the following command:
oc apply -f protobuf-deserialize-action-binding.yaml
43.3.1.3. Procedure for using the Kamel CLI Link kopierenLink in die Zwischenablage kopiert!
Configure and run the action by using the following command:
kamel bind "timer-source?message={\"first\":\"Ada\",\"last\":\"Lovelace\"}" --step json-deserialize-action --step protobuf-serialize-action -p "step-1.schema=message Person { required string first = 1; required string last = 2; }" --step protobuf-deserialize-action -p "step-2.schema=message Person { required string first = 1; required string last = 2; }" --step json-serialize-action channel:mychannel
This command creates the KameletBinding in the current namespace on the cluster.
43.3.2. Kafka Action Link kopierenLink in die Zwischenablage kopiert!
You can use the protobuf-deserialize-action Kamelet as an intermediate step in a Kafka binding.
protobuf-deserialize-action-binding.yaml
apiVersion: camel.apache.org/v1alpha1
kind: KameletBinding
metadata:
name: protobuf-deserialize-action-binding
spec:
source:
ref:
kind: Kamelet
apiVersion: camel.apache.org/v1alpha1
name: timer-source
properties:
message: '{"first":"Ada","last":"Lovelace"}'
steps:
- ref:
kind: Kamelet
apiVersion: camel.apache.org/v1alpha1
name: json-deserialize-action
- ref:
kind: Kamelet
apiVersion: camel.apache.org/v1alpha1
name: protobuf-serialize-action
properties:
schema: "message Person { required string first = 1; required string last = 2; }"
- ref:
kind: Kamelet
apiVersion: camel.apache.org/v1alpha1
name: protobuf-deserialize-action
properties:
schema: "message Person { required string first = 1; required string last = 2; }"
- ref:
kind: Kamelet
apiVersion: camel.apache.org/v1alpha1
name: json-serialize-action
sink:
ref:
kind: KafkaTopic
apiVersion: kafka.strimzi.io/v1beta1
name: my-topic
43.3.2.1. Prerequisites Link kopierenLink in die Zwischenablage kopiert!
Ensure that you’ve installed the AMQ Streams operator in your OpenShift cluster and created a topic named my-topic in the current namespace. Make also sure you have "Red Hat Integration - Camel K" installed into the OpenShift cluster you’re connected to.
43.3.2.2. Procedure for using the cluster CLI Link kopierenLink in die Zwischenablage kopiert!
-
Save the
protobuf-deserialize-action-binding.yamlfile to your local drive, and then edit it as needed for your configuration. Run the action by using the following command:
oc apply -f protobuf-deserialize-action-binding.yaml
43.3.2.3. Procedure for using the Kamel CLI Link kopierenLink in die Zwischenablage kopiert!
Configure and run the action by using the following command:
kamel bind "timer-source?message={\"first\":\"Ada\",\"last\":\"Lovelace\"}" --step json-deserialize-action --step protobuf-serialize-action -p "step-1.schema=message Person { required string first = 1; required string last = 2; }" --step protobuf-deserialize-action -p "step-2.schema=message Person { required string first = 1; required string last = 2; }" --step json-serialize-action kafka.strimzi.io/v1beta1:KafkaTopic:my-topic
This command creates the KameletBinding in the current namespace on the cluster.