Kubernetes 上の Event Grid - サブスクリプションのイベント フィルター処理

Kubernetes 上の Event Grid では、json ペイロードの任意のプロパティに対してフィルターを指定できます。 これらのフィルターは一連の AND 条件としてモデル化されており、外側の各条件には省略可能な内側の OR 条件があります。 AND 条件ごとに、次の値を指定します。

  • OperatorType - 比較の種類。
  • Key - フィルターを適用するプロパティへの json パス。
  • Value - フィルターの実行対象となる参照値 (または) Values - フィルターの実行対象となる一連の参照値。

重要

Azure Arc を使用した Kubernetes 上の Event Grid は、現在パブリック プレビュー中です。 このプレビュー バージョンはサービス レベル アグリーメントなしで提供されています。運用環境のワークロードに使用することはお勧めできません。 特定の機能はサポート対象ではなく、機能が制限されることがあります。 詳しくは、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 のように件名に 3 つのセグメント パスを示した場合、サブスクライバーは最初のセグメント /A でフィルター処理して幅広い一連のイベントを取得できます。 これらのサブスクライバーは、/A/B/C や /A/D/E などの件名を持つイベントを取得します。 他のサブスクライバーは、/A/B でフィルター処理して、より絞り込んだ一連のイベントを取得できます。

イベント データの値でフィルター処理する

高度なフィルター処理について詳しくは、Azure での Event Grid に関する記事の高度なフィルター処理に関するセクションを参照してください。 Kubernetes 上の Event Grid では、次の機能と演算子はサポートされていません。

  • 受信イベントのキーで配列データをフィルター処理する
  • CloudEvents 拡張機能のコンテキスト属性に対するフィルター処理を許可します。
  • 次の演算子
    • StringNotContains
    • StringNotBeginsWith
    • StringNotEndsWith
    • NumberInRange
    • NumberNotInRange
    • IsNullOrUndefined
    • IsNotNull

次の手順

Azure Arc for Kubernetes 上の Event Grid でサポートされる宛先とハンドラーについて詳しくは、Kubernetes 上の Event Grid - イベント ハンドラーに関する記事を参照してください。