×

代理可以与触发器结合使用,将事件从事件源传递到事件接收器。事件作为 HTTP POST 请求从事件源发送到代理。事件进入代理后,可以使用触发器根据CloudEvent 属性进行过滤,并作为 HTTP POST 请求发送到事件接收器。

Broker event delivery overview

使用管理员视角创建触发器

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

先决条件
  • OpenShift Serverless Operator 和 Knative Eventing 已安装在您的 OpenShift Container Platform 集群上。

  • 您已登录到 Web 控制台并处于**管理员**视角。

  • 您拥有 OpenShift Container Platform 的集群管理员权限,或者您拥有 Red Hat OpenShift Service on AWS 或 OpenShift Dedicated 的集群或专用管理员权限。

  • 您已创建 Knative 代理。

  • 您已创建 Knative 服务用作订阅者。

步骤
  1. 在 OpenShift Container Platform Web 控制台的**管理员**视角中,导航到**无服务器** → **Eventing**。

  2. 在**代理**选项卡中,选择您要向其添加触发器的代理的选项菜单 kebab

  3. 单击列表中的**添加触发器**。

  4. 在**添加触发器**对话框中,为触发器选择一个**订阅者**。订阅者是将接收来自代理的事件的 Knative 服务。

  5. 单击**添加**。

使用开发者视角创建触发器

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

先决条件
  • OpenShift Serverless Operator、Knative Serving 和 Knative Eventing 已安装在您的 OpenShift Container Platform 集群上。

  • 您已登录到 Web 控制台。

  • 您已创建项目或有权访问具有适当角色和权限的项目,以便在 OpenShift Container Platform 中创建应用程序和其他工作负载。

  • 您已创建代理和 Knative 服务或其他要连接到触发器的事件接收器。

步骤
  1. 在**开发者**视角中,导航到**拓扑**页面。

  2. 将鼠标悬停在要为其创建触发器的代理上,然后拖动箭头。将显示**添加触发器**选项。

  3. 单击**添加触发器**。

  4. 在**订阅者**列表中选择您的接收器。

  5. 单击**添加**。

验证
  • 订阅创建后,您可以在**拓扑**页面查看它,它以连接代理和事件接收器的线段形式显示。

删除触发器
  1. 在**开发者**视角中,导航到**拓扑**页面。

  2. 点击您要删除的触发器。

  3. 在**操作**上下文菜单中,选择**删除触发器**。

使用 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>

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

    $ kn trigger create <trigger_name> --inject-broker --filter <key=value> --sink <sink_name>

    默认情况下,触发器会将发送到代理的所有事件转发到已订阅该代理的接收器。使用触发器的--filter属性允许您过滤来自代理的事件,以便订阅者仅根据您定义的条件接收部分事件。