This documentation is for a release that is no longer maintained
See documentation for the latest supported version 3 or the latest supported version 4.10.4. 使用触发器(trigger)
所有发送到某个频道或者代理的事件都会被发送到该频道的所有订阅者或者代理。
使用触发器可让您过滤频道或代理的事件,以便订阅者只根据您定义的标准接收到一小部分事件。
Knative CLI 提供了一组 kn trigger
命令,可用于创建和管理触发器。
10.4.1. 先决条件 复制链接链接已复制到粘贴板!
在使用触发器前,您需要:
-
安装了 Knative Eventing 和
kn
。 有可用的代理,可以是
default
代理,也可以是您创建的代理。您可以按照 在 Knative Eventing 中使用代理中的内容,或在创建触发器时使用
--inject-broker
标志来创建default
代理。以下介绍了使用标志的步骤。- 一个可用的事件消费者,例如 Knative 服务。
10.4.2. 使用 kn创建触发器 复制链接链接已复制到粘贴板!
流程
创建触发器:
kn trigger create <trigger_name> --broker <broker_name> --filter <key=value> --sink <sink_name>
$ kn trigger create <trigger_name> --broker <broker_name> --filter <key=value> --sink <sink_name>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 要创建触发器并使用代理注入程序创建
default
代理,请输入以下命令:kn trigger create <TRIGGER-NAME> --inject-broker --filter <KEY=VALUE> --sink <SINK>
$ kn trigger create <TRIGGER-NAME> --inject-broker --filter <KEY=VALUE> --sink <SINK>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
触发器 YAML 示例:
10.4.3. 使用 kn列出触发器 复制链接链接已复制到粘贴板!
Kn trigger list
命令输出可用触发器列表。
流程
显示可用触发器列表:
kn trigger list
$ kn trigger list
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
NAME BROKER SINK AGE CONDITIONS READY REASON email default svc:edisplay 4s 5 OK / 5 True ping default svc:edisplay 32s 5 OK / 5 True
NAME BROKER SINK AGE CONDITIONS READY REASON email default svc:edisplay 4s 5 OK / 5 True ping default svc:edisplay 32s 5 OK / 5 True
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
10.4.4. 使用 JSON 格式的 kn 列出触发器 复制链接链接已复制到粘贴板!
流程
以 JSON 格式输出触发器列表:
kn trigger list -o json
$ kn trigger list -o json
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
10.4.5. 使用 kn 输出触发器信息 复制链接链接已复制到粘贴板!
kn trigger describe
命令会输出有关一个触发器的信息。
流程
输入命令:
kn trigger describe <trigger_name>
$ kn trigger describe <trigger_name>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
10.4.6. 使用 kn删除触发器 复制链接链接已复制到粘贴板!
流程
- 删除触发器:
kn trigger delete <trigger_name>
$ kn trigger delete <trigger_name>
10.4.7. 使用 kn更新触发器 复制链接链接已复制到粘贴板!
您可以使用带有特定标志的 kn trigger update
命令来更新触发器的属性。
示例
更新触发器来过滤与传入事件匹配的事件属性,如
type=knative.dev.event
。kn trigger update <trigger_name> --filter type=knative.dev.event
$ kn trigger update <trigger_name> --filter type=knative.dev.event
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 使用键
type
来删除过滤器属性:kn trigger update mytrigger --filter type-
$ kn trigger update mytrigger --filter type-
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 更新触发器的 sink,以使用名为
event-display 的
服务:kn trigger update <trigger_name> --sink svc:event-display
$ kn trigger update <trigger_name> --sink svc:event-display
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
10.4.8. 使用触发器过滤事件 复制链接链接已复制到粘贴板!
在以下触发器示例中,只有具有属性 type: dev.knative.samples.helloworld
的事件才会到达事件 sink。
kn trigger create <trigger_name> --broker <broker_name> --filter type=dev.knative.samples.helloworld --sink svc:<service_name>
$ kn trigger create <trigger_name> --broker <broker_name> --filter type=dev.knative.samples.helloworld --sink svc:<service_name>
您还可以使用多个属性过滤事件。以下示例演示了如何使用类型、源和扩展属性过滤事件。
kn trigger create <trigger_name> --broker <broker_name> --sink svc:<service_name> \ --filter type=dev.knative.samples.helloworld \ --filter source=dev.knative.samples/helloworldsource \ --filter myextension=my-extension-value
$ kn trigger create <trigger_name> --broker <broker_name> --sink svc:<service_name> \
--filter type=dev.knative.samples.helloworld \
--filter source=dev.knative.samples/helloworldsource \
--filter myextension=my-extension-value