你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

Kubernetes 上的事件网格 - 订阅的事件筛选

通过 Kubernetes 上的事件网格,可对 json 有效负载中的任何属性指定筛选器。 这些筛选器将建模为 AND 条件集,其中每个外部条件都有可选的内部 OR 条件。 对于每个 AND 条件,请指定以下值:

  • OperatorType - 比较的类型。
  • 键 - 要对其应用筛选器的属性的 json 路径。
  • 值 - 运行筛选器所依据的引用值(或)值 - 运行筛选器所依据的引用值集。

重要

Azure Arc 的 Kubernetes 上的事件网格目前为公共预览版。 此预览版在提供时没有附带服务级别协议,不建议将其用于生产工作负荷。 某些功能可能不受支持或者受限。 有关详细信息,请参阅 Microsoft Azure 预览版补充使用条款

按事件类型筛选

默认情况下,事件源的所有事件类型type 特性)都将发送到终结点。 可以决定仅将某些事件类型发送到终结点。 按事件类型筛选的 JSON 语法是:

"filter": {
  "includedEventTypes": [
    "orderCreated",
    "orderUpdated"
  ]
}

在以上示例中,类型 orderCreatedorderUpdated 事件的唯一事件将发送到订阅服务器终结点。

下面是一个示例事件:

[{
      "specVersion": "1.0",
      "type" : "orderCreated",
      "source": "myCompanyName/us/webCommerceChannel/myOnlineCommerceSiteBrandName",
      "id" : "eventId-n",
      "time" : "2020-12-25T20:54:07+00:00",
      "subject" : "account/acct-123224/order/o-123456",
      "dataSchema" : "1.0",
      "data" : {
         "orderId" : "123",
         "orderType" : "PO",
         "reference" : "https://www.myCompanyName.com/orders/123"
      }
}]

按主题筛选

对于按主题的简单筛选,请指定主题的开头值或结尾值。 按主题筛选的 JSON 语法是:

"filter": {
  "subjectBeginsWith": "/account/acct-123224/"
}

例如,上面配置的筛选器将向订阅服务器终结点发送与帐户 acct-123224 关联的所有订单。

将事件发布到主题时,可为事件创建主题,便于订阅者们了解他们是否对该事件感兴趣。 订阅者使用主题属性来筛选和路由事件。 考虑添加事件发生位置的路径,以便订阅者可以按该路径的段进行筛选。 通过路径,订阅者可精确或宽泛地筛选事件。 如果在主题中提供一个由三个段构成的路径(如 /A/B/C),订阅者可根据第一个段 /A 进行筛选,获取范围较宽泛的一组事件。 这些订阅者会获取主题为 /A/B/C 或 /A/D/E 这样的事件。 其他订阅者可通过 /A/B 进行筛选,这样可以获取范围更精确的一组事件。

按事件数据中的值进行筛选

请参阅“Azure 上的事件网格”一文中的“高级筛选”部分,详细了解高级筛选。 Kubernetes 上的事件网格不支持以下功能和运算符。

  • 筛选传入事件键中的数组数据
  • 允许筛选 CloudEvents 扩展上下文特性
  • 以下运算符
    • StringNotContains
    • StringNotBeginsWith
    • StringNotEndsWith
    • NumberInRange
    • NumberNotInRange
    • IsNullOrUndefined
    • IsNotNull

后续步骤

若要了解 Azure Arc for Kubernetes 上的事件网格支持的目标和处理程序,请参阅 Kubernetes 上的事件网格 - 事件处理程序