Kubernetes의 Event Grid - 구독에 대한 이벤트 필터링

Kubernetes의 Event Grid를 사용하면 json 페이로드의 모든 속성에 필터를 지정할 수 있습니다. 이러한 필터는 AND 조건 세트로 모델링되며 각 외부 조건에는 선택적 내부 OR 조건이 있습니다. 각 AND 조건에 대해 다음 값을 지정합니다.

  • OperatorType - 비교 형식입니다.
  • 키 - 필터를 적용할 속성의 json 경로입니다.
  • 값 - 필터가 실행되는 참조 값 (또는) 값- 필터가 실행되는 참조 값 세트입니다.

Important

Azure Arc를 사용하는 Kubernetes의 Event Grid는 현재 공개 미리 보기로 제공됩니다. 이 미리 보기 버전은 서비스 수준 계약 없이 제공되며 프로덕션 워크로드에는 사용하지 않는 것이 좋습니다. 특정 기능이 지원되지 않거나 기능이 제한될 수 있습니다. 자세한 내용은 Microsoft Azure Preview에 대한 추가 사용 약관을 참조하세요.

이벤트 유형별 필터링

기본적으로 이벤트 원본에 대한 모든 이벤트 유형(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와 같은 3개의 세그먼트 경로를 제공하는 경우 구독자는 첫 번째 세그먼트 /A를 기준으로 필터링하여 광범위한 이벤트 세트를 가져올 수 있습니다. 해당 구독자는 /A/B/C 또는 /A/D/E와 같은 제목이 있는 이벤트를 가져옵니다. 다른 구독자는 /A/B를 기준으로 필터링하여 제한된 이벤트 세트를 가져올 수 있습니다.

이벤트 데이터의 값으로 필터링

고급 필터링에 대해 자세히 알아보려면 Azure의 Event Grid 문서에 있는 고급 필터링 섹션을 참조하세요. 다음 기능 및 연산자는 Kubernetes의 Event Grid에서 지원되지 않습니다.

  • 들어오는 이벤트 키의 배열 데이터 필터링
  • CloudEvents 확장 컨텍스트 특성에 대한 필터링을 허용합니다.
  • 다음 연산자
    • StringNotContains
    • StringNotBeginsWith
    • StringNotEndsWith
    • NumberInRange
    • NumberNotInRange
    • IsNullOrUndefined
    • IsNotNull

다음 단계

Kubernetes용 Azure Arc의 Event Grid에서 지원하는 대상 및 처리기에 대해 알아보려면 Kubernetes의 Event Grid - 이벤트 처리기를 참조하세요.