3.3. 在 Kamelet Binding 中将数据源连接到 Knative 目的地
要将数据源连接到 Knative 目的地(频道或代理),您可以创建一个 Kamelet Binding,如图 3.2 所示。
图 3.2 将数据源连接到 Knative 目的地
Knative 目的地可以是 Knative 频道或 Knative 代理。
当您向频道发送数据时,该频道只有一个事件类型。您不需要在 Kamelet Binding 中为频道指定任何属性值。
当您将数据发送到代理时,因为代理可以处理多个事件类型,所以您必须在 Kamelet Binding 中引用代理时为 type 属性指定一个值。
先决条件
您知道要向其发送事件的 Knative 频道或代理的名称和类型。
此流程中的示例使用名为
mychannel的InMemoryChannel频道或名为default的代理。对于代理示例,type属性值是coffee事件的 coffee。您知道您要添加到 Camel 集成和所需的实例参数中的 Kamelet。
此流程的 Kamelet 示例是
coffee-sourceKamelet。它有一个可选参数period,用于指定发送每个事件的频率。您可以将 示例源 Kamelet 中的代码 复制到名为coffee-source.kamelet.yaml文件的文件,然后运行以下命令将其作为资源添加到命名空间中:oc apply -f coffee-source.kamelet.yaml
流程
要将数据源连接到 Knative 目的地,请创建一个 Kamelet Binding:
在您选择的编辑器中,创建具有以下基本结构的 YAML 文件:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 为 Kamelet Binding 添加名称。在本例中,名称为
coffees-to-knative,因为绑定将coffee-sourceKamelet 连接到 Knative 目的地。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 对于 Kamelet Binding 的源,请指定数据源 Kamelet (例如,coffee
-sourceKamelet 会生成事件,其中包含有关 coffee 的数据,并为 Kamelet 配置任何参数。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 对于 Kamelet Binding 的 sink 指定 Knative 频道或代理以及所需的参数。
这个示例将 Knative 频道指定为 sink:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 这个示例将 Knative 代理指定为 sink:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
保存 YAML 文件(例如,coffe
es-to-knative.yaml)。 - 登录您的 OpenShift 项目。
将 Kamelet Binding 作为资源添加到 OpenShift 命名空间中:
oc apply -f <kamelet 绑定 filename>例如:
oc apply -f coffees-to-knative.yamlCamel K operator 使用
KameletBinding资源生成并运行 Camel K 集成。构建可能需要几分钟时间。查看
KameletBinding的状态:oc get kameletbindings查看其集成状态:
oc get integrations查看集成的日志:
kamel logs <integration> -n <project>例如:
kamel logs coffees-to-knative -n my-camel-knative
另请参阅