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>
    Copy to Clipboard Toggle word wrap

    其中:

    • --field 标志将数据作为字段值对添加到事件中。您可以多次使用它。
    • --type 标志允许您指定指定事件类型的字符串。
    • --id 标志指定事件的 ID。
    • -to 标志指定事件的目的地。
    • --namespace 标志指定命名空间。如果省略,则会从当前上下文中获取命名空间。

      所有这些标记都是可选的,但目的地规格除外。

注意

您可以将以下目标格式 用于标记

  • --to broker:<broker& gt; : 指定代理
  • --to channel:<channel& gt; : 指定频道
  • --to ksvc:<service& gt ; or-to <service>: 指定当前命名空间中的 Knative 服务
  • --to ksvc:<service>:<namespace > : 指定另一个命名空间中的 Knative 服务
  • --to svc:<service>:<namespace > : 指定另一个命名空间中的 Kubernetes 服务
  • --to special.eventing.dev/v1alpha1/channels:<channel& gt; : 指定 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/
Copy to Clipboard Toggle word wrap

将和事件发送到 in-cluster 资源

$ kn event send \
    --type org.example.kn.ping \
    --id $(uuidgen) \
    --field event.type=test \
    --field event.data=98765 \
    --to ksvc:event-display
Copy to Clipboard Toggle word wrap

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat