3.2. 使用 kn-event 插件发送事件
您可以使用 kn event send 命令来发送事件。事件可以发送到公开的地址,或发送到集群中的可寻址资源,如 Kubernetes 服务,以及 Knative 服务、代理和频道。命令使用与 kn event build 命令相同的 builder 接口。
先决条件
-
已安装 Knative (
kn) CLI。
流程
发送事件:
$ kn event send \ --field <field_name>=<value> \ --type <type_name> \ --id <id> \ --to <url_or_cluster_resource> \ --namespace <namespace>其中:
-
--field标志将数据作为字段值对添加到事件中。您可以多次使用它。 -
--type标志允许您指定指定事件类型的字符串。 -
--id标志指定事件的 ID。 -
-to标志指定事件的目的地。 --namespace标志指定命名空间。如果省略,则会从当前上下文中获取命名空间。所有这些标记都是可选的,但目的地规格除外。
-
注意
您可以将以下目标格式 用于标记 :
-
--to broker:<broker> : 指定代理 -
--to channel:<channel> : 指定频道 -
--to ksvc:<service> or-to <service>: 指定当前命名空间中的 Knative 服务 -
--to ksvc:<service>:<namespace> : 指定另一个命名空间中的 Knative 服务 -
--to svc:<service>:<namespace> : 指定另一个命名空间中的 Kubernetes 服务 -
--to special.eventing.dev/v1alpha1/channels:<channel> : 指定v1alpha1频道的GroupVersionResource -
--to https://example.receiver.uri:指定 HTTP URL
如果没有提供前缀,目的地默认为当前命名空间中的 Knative 服务。
将事件发送到 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 http://ce-api.foo.example.com/
将和事件发送到 in-cluster 资源
$ kn event send \
--type org.example.kn.ping \
--id $(uuidgen) \
--field event.type=test \
--field event.data=98765 \
--to ksvc:event-display