Kubernetes 上的事件方格 - 訂用帳戶的事件篩選

Kubernetes 上的事件方格允許對 json 承載中的任何屬性指定篩選。 這些篩選會模型化為一組 AND 條件,且每個外部條件都有選擇性的內部 OR 條件。 對於每個 AND 條件,您可以指定下列值:

  • OperatorType - 比較的類型。
  • Key - 要套用篩選之屬性的 json 路徑。
  • Value - 據以執行篩選的參考值 (或) Values - 據以執行篩選的一組參考值。

重要

具有 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

下一步

若要了解適用於 Kubernetes 的 Azure Arc 事件方格所支援的目的地和處理常式,請參閱 Kubernetes 上的事件方格 - 事件處理常式