5.2. 创建触发器


Knative Eventing 中的触发器允许您根据要求将事件从代理路由到特定的订阅者。通过定义 Trigger,您可以动态将事件制作者连接到消费者,确保事件传送到正确的目的地。本节论述了创建 Trigger、配置其过滤器并验证其功能的步骤。无论您是处理简单路由需求还是复杂的事件驱动的工作流。

以下示例显示了 Triggers 的常见配置,演示了如何将事件路由到 Knative 服务或自定义端点。

到 Knative Serving 服务的路由事件示例

以下 Trigger 将所有事件从 default 代理路由到名为 my-service 的 Knative Serving 服务:

apiVersion: eventing.knative.dev/v1
kind: Trigger
metadata:
  name: my-service-trigger
spec:
  broker: default
  filter:
    attributes:
      type: dev.knative.foo.bar
  subscriber:
    ref:
      apiVersion: serving.knative.dev/v1
      kind: Service
      name: my-service
Copy to Clipboard Toggle word wrap
注意

建议路由所有没有 过滤器 属性的事件进行调试。它允许您观察和分析所有传入的事件,帮助识别问题或验证通过代理的事件流,然后再应用特定的过滤器。要了解有关过滤的更多信息,请参阅高级触发器过滤器

要应用此触发器,您可以将配置保存到文件中,例如 trigger.yaml 并运行以下命令:

$ oc apply -f trigger.yaml
Copy to Clipboard Toggle word wrap

到自定义路径的路由事件示例

此 Trigger 将所有事件从 default 代理路由到名为 my-service 的服务上的自定义路径 /my-custom-path

apiVersion: eventing.knative.dev/v1
kind: Trigger
metadata:
  name: my-service-trigger
spec:
  broker: default
  subscriber:
    ref:
      apiVersion: v1
      kind: Service
      name: my-service
    uri: /my-custom-path
Copy to Clipboard Toggle word wrap

您可以将配置保存到文件中,如 custom-path-trigger.yaml,并运行以下命令:

$ oc apply -f custom-path-trigger.yaml
Copy to Clipboard Toggle word wrap

5.2.1. 创建触发器

使用 OpenShift Container Platform Web 控制台提供了一个简化且直观的用户界面来创建触发器。在集群中安装 Knative Eventing 并创建了代理后,您可以使用 web 控制台创建触发器。

先决条件

  • OpenShift Serverless Operator、Knative Serving 和 Knative Eventing 已在 OpenShift Container Platform 集群中安装。
  • 已登陆到 web 控制台。
  • 您已创建了一个项目,或者具有适当的角色和权限访问项目,以便在 OpenShift Container Platform 中创建应用程序和其他工作负载。
  • 您已创建了代理和 Knative 服务或其他事件 sink 以连接触发器。

流程

  1. 导航到 Topology 页面。
  2. 将鼠标悬停在您要创建触发器的代理上,并拖动箭头。此时会显示 Add Trigger 选项。
  3. Add Trigger
  4. Subscriber 列表中选择您的接收器。
  5. Add

验证

  • 创建订阅后,您可以在 Topology 页面中查看它,其中它是一个将代理连接到事件 sink 的行。

删除触发器

  1. 导航到 Topology 页面。
  2. 点您要删除的触发器。
  3. Actions 上下文菜单中,选择 Delete Trigger

5.2.2. 使用 Knative CLI 创建触发器

您可以使用 kn trigger create 命令创建触发器。

先决条件

  • OpenShift Serverless Operator 和 Knative Eventing 已安装在 OpenShift Container Platform 集群中。
  • 已安装 Knative (kn) CLI。
  • 您已创建了一个项目,或者具有适当的角色和权限访问项目,以便在 OpenShift Container Platform 中创建应用程序和其他工作负载。

流程

  • 创建触发器:

    $ kn trigger create <trigger_name> --broker <broker_name> --filter <key=value> --sink <sink_name>
    Copy to Clipboard Toggle word wrap

    或者,您可以创建触发器并使用代理注入同时创建 default 代理:

    $ kn trigger create <trigger_name> --inject-broker --filter <key=value> --sink <sink_name>
    Copy to Clipboard Toggle word wrap

    默认情况下,触发器会将发送到代理的所有事件转发到订阅到该代理的 sink。通过对触发器使用 --filter 属性,您可以从代理过滤事件,这样订阅者才会根据您定义的标准接收一小部分事件。

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2025 Red Hat