跳到內容

使用觸發器和接收器

在上一個主題中,我們使用 CloudEvents Player 作為事件來源,將事件傳送到 Broker。我們現在希望事件從 Broker 傳送到事件接收器。

在這個主題中,我們將使用 CloudEvents Player 作為接收器和來源。這表示我們將使用 CloudEvents Player 來傳送和接收事件。我們將使用觸發器來監聽 Broker 中的事件,並將其傳送到接收器。

建立您的第一個觸發器

建立一個觸發器,該觸發器監聽來自事件來源的 CloudEvents,並將它們放入接收器,該接收器也是 CloudEvents Player 應用程式。

若要建立觸發器,請執行命令

kn trigger create cloudevents-trigger --sink cloudevents-player  --broker example-broker

預期輸出

Trigger 'cloudevents-trigger' successfully created in namespace 'default'.
  1. 將以下 YAML 複製到名為 ce-trigger.yaml 的檔案中

    apiVersion: eventing.knative.dev/v1
    kind: Trigger
    metadata:
      name: cloudevents-trigger
      annotations:
        knative-eventing-injection: enabled
    spec:
      broker: example-broker
      subscriber:
        ref:
          apiVersion: serving.knative.dev/v1
          kind: Service
          name: cloudevents-player
    

  2. 執行命令以建立觸發器

    kubectl apply -f ce-trigger.yaml
    

    預期輸出

    trigger.eventing.knative.dev/cloudevents-trigger created
    
我的觸發器正在監聽哪些 CloudEvents?

因為我們在 kn 命令中沒有指定 --filter,所以觸發器正在監聽進入 Broker 的任何 CloudEvents。

展開下一個注意事項以了解如何使用篩選器。

現在,當我們回到 CloudEvents Player 並傳送事件時,我們看到 CloudEvents 會同時由 CloudEvents Player 傳送和接收

CloudEvents Player user interface

您可能需要重新整理頁面才能看到您的變更。

如果我想要篩選 CloudEvent 屬性該怎麼辦?

首先,刪除您現有的觸發器

  kn trigger delete cloudevents-trigger
現在讓我們新增一個觸發器,該觸發器監聽特定的 CloudEvent 類型
  kn trigger create cloudevents-player-filter --sink cloudevents-player  --broker example-broker --filter type=some-type

如果您傳送類型為 some-type 的 CloudEvent,它會反映在 CloudEvents Player UI 中。觸發器會忽略任何其他類型。

您可以篩選您想要的 CloudEvent 的任何方面。

有些人稱之為「事件驅動架構」,可用於在 Kubernetes 上建立您自己的「函式即服務」 🎉 🌮 🔥

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