4.3. Knative CLI 插件
Knative (kn
) CLI 支持使用插件,这允许您通过添加不是核心发行版本一部分的自定义命令和其他共享命令来扩展 kn
安装的功能。Knative (kn
) CLI 插件的使用方式与主 kn
功能相同。
目前,红帽支持 kn-source-kafka
插件和 kn-event
插件。
kn-event
插件只是一个技术预览功能。技术预览功能不受红帽产品服务等级协议(SLA)支持,且功能可能并不完整。红帽不推荐在生产环境中使用它们。这些技术预览功能可以使用户提早试用新的功能,并有机会在开发阶段提供反馈意见。
有关红帽技术预览功能支持范围的详情,请参考 https://access.redhat.com/support/offerings/techpreview/。
4.3.1. 使用 kn-event 插件构建事件
您可以使用 kn event build
命令的 builder 接口来构建事件。然后,您可以稍后发送该事件或在另一个上下文中使用它。
先决条件
-
已安装 Knative (
kn
) CLI。
流程
构建事件:
$ kn event build --field <field-name>=<value> --type <type-name> --id <id> --output <format>
其中:
-
--field
标志将数据作为字段值对添加到事件中。您可以多次使用它。 -
--type
标志允许您指定指定事件类型的字符串。 -
--id
标志指定事件的 ID。 您可以将
json
或yaml
参数与--output
标志一起使用,以更改事件的输出格式。所有这些标记都是可选的。
构建简单的事件
$ kn event build -o yaml
结果为 YAML 格式
data: {} datacontenttype: application/json id: 81a402a2-9c29-4c27-b8ed-246a253c9e58 source: kn-event/v0.4.0 specversion: "1.0" time: "2021-10-15T10:42:57.713226203Z" type: dev.knative.cli.plugin.event.generic
构建示例事务事件
$ kn event build \ --field operation.type=local-wire-transfer \ --field operation.amount=2345.40 \ --field operation.from=87656231 \ --field operation.to=2344121 \ --field automated=true \ --field signature='FGzCPLvYWdEgsdpb3qXkaVp7Da0=' \ --type org.example.bank.bar \ --id $(head -c 10 < /dev/urandom | base64 -w 0) \ --output json
JSON 格式的结果事件
{ "specversion": "1.0", "id": "RjtL8UH66X+UJg==", "source": "kn-event/v0.4.0", "type": "org.example.bank.bar", "datacontenttype": "application/json", "time": "2021-10-15T10:43:23.113187943Z", "data": { "automated": true, "operation": { "amount": "2345.40", "from": 87656231, "to": 2344121, "type": "local-wire-transfer" }, "signature": "FGzCPLvYWdEgsdpb3qXkaVp7Da0=" } }
-