跳到內容

新的觸發器篩選器

旗標名稱: new-apiserversource-filters

階段: Alpha,預設停用

追蹤問題: #7791

概觀

此功能在 APIServerSource 中啟用新的 filters 欄位,該欄位符合 CloudEvents 訂閱 API 中定義的篩選器 API 欄位。它允許使用者指定一組強大的篩選器運算式,其中每個運算式針對每個事件評估為 true 或 false。

以下範例顯示使用新的 filters 欄位的 APIServerSource

---
apiVersion: sources.knative.dev/v1
kind: ApiServerSource
metadata:
 name: my-apiserversource
 namespace: default
spec:
  filters:
  - any:
    - exact:
        type: dev.knative.apiserver.ref.add

  serviceAccountName: apiserversource
  mode: Reference
  resources: ...
  sink: ...

關於篩選器欄位

  • 評估為 true 或 false 的篩選器運算式陣列。如果陣列中的任何篩選器運算式評估為 false,則該事件將不會傳送到 sink
  • 每個篩選器運算式都遵循一種方言,該方言定義篩選器的類型以及篩選器運算式中允許的一組額外屬性。

支援的篩選器方言

filters 欄位支援以下方言

exact

CloudEvent 屬性字串值必須完全符合指定的字串值。比對區分大小寫。

apiVersion: sources.knative.dev/v1
kind: APIServerSource
metadata:
  ...
spec:
  ...
  filters:
    - exact:
        type: com.github.push

prefix

CloudEvent 屬性字串值必須以指定的字串值開頭。比對區分大小寫。

apiVersion: sources.knative.dev/v1
kind: APIServerSource
metadata:
  ...
spec:
  ...
  filters:
    - prefix:
        type: com.github.

suffix

CloudEvent 屬性字串值必須以指定的字串值結尾。比對區分大小寫。

apiVersion: sources.knative.dev/v1
kind: APIServerSource
metadata:
  ...
spec:
  ...
  filters:
    - suffix:
        type: .created

all

所有巢狀篩選器運算式都必須評估為 true。

apiVersion: sources.knative.dev/v1
kind: APIServerSource
metadata:
  ...
spec:
  ...
  filters:
    - all:
        - exact:
            type: com.github.push
        - exact:
            subject: https://github.com/cloudevents/spec

any

至少一個巢狀篩選器運算式必須評估為 true。

apiVersion: sources.knative.dev/v1
kind: APIServerSource
metadata:
  ...
spec:
  ...
  filters:
    - any:
        - exact:
            type: com.github.push
        - exact:
            subject: https://github.com/cloudevents/spec

not

評估的巢狀運算式必須評估為 false。

apiVersion: sources.knative.dev/v1
kind: APIServerSource
metadata:
  ...
spec:
  ...
  filters:
      - not:
          exact:
              type: com.github.push

cesql

提供的 CloudEvents SQL 運算式 必須評估為 true。

apiVersion: sources.knative.dev/v1
kind: APIServerSource
metadata:
  ...
spec:
  ...
  filters:
    - cesql: "source LIKE '%commerce%' AND type IN ('order.created', 'order.updated', 'order.canceled')"

常見問題

APIServerSource 提供哪些事件類型?

  • dev.knative.apiserver.resource.add
  • dev.knative.apiserver.resource.update
  • dev.knative.apiserver.resource.delete
  • dev.knative.apiserver.ref.add
  • dev.knative.apiserver.ref.update
  • dev.knative.apiserver.ref.delete

我們使用分析和 Cookie 來了解網站流量。您使用我們網站的資訊會為了該目的與 Google 分享。了解更多。