你当前正在访问 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"
]
}
在以上示例中,类型 orderCreated
和 orderUpdated
事件的唯一事件将发送到订阅服务器终结点。
下面是一个示例事件:
[{
"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 上的事件网格 - 事件处理程序。