$ kn event build --field <field-name>=<value> --type <type-name> --id <id> --output <format>
Knative (kn
) CLI 支持使用插件,这使您可以通过添加自定义命令和其他非核心分发版共享命令来扩展 kn
安装的功能。Knative (kn
) CLI 插件的使用方式与主 kn
功能相同。
目前,Red Hat 支持 kn-source-kafka
插件和 kn-event
插件。
有关 Red Hat 技术预览功能的支持范围的更多信息,请参阅 技术预览功能支持范围。 |
您可以使用 kn event build
命令的类似构建器的界面来构建事件。然后,您可以稍后发送该事件或将其用于其他上下文。
您已安装 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
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
{
"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="
}
}
您可以使用 kn event send
命令发送事件。事件可以发送到公共可用地址或群集内的可寻址资源,例如 Kubernetes 服务以及 Knative 服务、代理和通道。该命令使用与 kn event build
命令相同的类似构建器的界面。
您已安装 Knative (kn
) CLI。
发送事件
$ kn event send --field <field-name>=<value> --type <type-name> --id <id> --to-url <url> --to <cluster-resource> --namespace <namespace>
其中
--field
标志将数据作为字段值对添加到事件中。您可以多次使用它。
--type
标志使您可以指定一个字符串,该字符串指定事件的类型。
--id
标志指定事件的 ID。
如果您要将事件发送到公共可访问的目标,请使用 --to-url
标志指定 URL。
如果您要将事件发送到群集内的 Kubernetes 资源,请使用 --to
标志指定目标。
使用 <Kind>:<ApiVersion>:<name>
格式指定 Kubernetes 资源。
--namespace
标志指定命名空间。如果省略,则命名空间取自当前上下文。
除目标规范外,所有这些标志都是可选的,您需要使用 --to-url
或 --to
。
以下示例显示了将事件发送到 URL。
$ kn event send \
--field player.id=6354aa60-ddb1-452e-8c13-24893667de20 \
--field player.game=2345 \
--field points=456 \
--type org.example.gaming.foo \
--to-url http://ce-api.foo.example.com/
以下示例显示了将事件发送到群集内资源。
$ kn event send \
--type org.example.kn.ping \
--id $(uuidgen) \
--field event.type=test \
--field event.data=98765 \
--to Service:serving.knative.dev/v1:event-display