1.3. 对连接中的数据应用操作
如果要对 Kamelet 和事件频道之间传递的数据执行操作,请在 Kamelet Binding 中使用 action Kamelets 作为中介步骤。例如,您可以使用操作 Kamelet 来序列化或反序列化数据,过滤数据,或者插入字段或消息标头。
操作操作(如过滤或添加字段)只适用于 JSON 数据(即,当 Content-Type
标头设置为 application/json
时)。如果事件数据使用 JSON 以外的格式(如 Avro 或 Protocol Buffers),则必须添加反序列化步骤(例如,引用 protobuf-deserialize-action
或 avro-deserialize-action
Kamelet)来转换数据的格式,例如: 这引用 protobuf-serialize-action
或 avro-serialize-action
Kamelet)。有关在连接中转换数据格式的更多信息,请参阅数据转换 Kamelets。
操作 Kamelets 包括:
1.3.1. 在 Kamelet Binding 中添加操作 复制链接链接已复制到粘贴板!
要实施操作 Kamelet,在 Kamelet Binding 文件的 spec
部分中,在 source 和 sink 部分添加一个 steps
部分。
先决条件
- 您已创建了 Kamelet Binding,如 Kamelet Binding 中的 Connecting source 和 sink 组件 所述。
您知道您要添加到 Kamelet Binding 和 Kamelet 所需参数的操作 Kamelet。
对于此流程中的示例,
predicate-filter-action
Kamelet 的参数是一个字符串
类型表达式,它提供 JSON 路径表达式,将 coffee 数据过滤为仅包含"deep" taste intensity 的日志 coffees。请注意,predicate-filter-action
Kamelet 要求您在 Kamelet Binding 中设置 Builder 特征配置属性。这个示例还包括反序列化和序列化操作,本例中是可选的,因为事件数据格式为 JSON。
流程
在编辑器中打开
KameletBinding
文件。例如,以下是
coffee-to-log.yaml
文件的内容:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在
source
部分上方添加一个integration
部分,并提供以下 Builder 特征配置属性(如predicate-filter-action
Kamelet 所需的):Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在
source
和sink
部分添加steps
部分,并定义操作 Kamelet。例如:Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 保存您的更改。
使用
oc apply
命令更新KameletBinding
资源,例如:oc apply -f coffee-to-log.yaml
Camel K operator 重新生成并运行它基于更新的
KameletBinding
资源生成的 CamelK 集成。查看 Kamelet Binding 的状态:
oc get kameletbindings
查看其对应的集成状态:
oc get integrations
查看集成的日志文件输出:
kamel logs <integration-name>
例如,如果集成名称为
coffee-to-log
:kamel logs coffee-to-log
要停止集成,请删除 Kamelet Binding:
oc delete kameletbindings/<kameletbinding-name>
例如:
oc delete kameletbindings/coffee-to-log