10.4. トリガーの使用
チャネルまたはブローカーに送信されたすべてのイベントは、デフォルトでそのチャネルまたはブローカーのすべてのサブスクライバーに送信されます。
トリガーを使用すると、チャネルまたはブローカーからイベントをフィルターできるため、サブスクライバーは定義された基準に基づくイベントのサブセットのみを受け取ることができます。
Knative CLI は、トリガーの作成および管理に使用できる kn trigger コマンドのセットを提供します。
10.4.1. 前提条件 リンクのコピーリンクがクリップボードにコピーされました!
トリガーを使用する前に、以下が必要になります。
-
Knative Eventing および
knがインストールされている。 defaultブローカーまたは作成したブローカーのいずれかの利用可能なブローカー。defaultブローカーは、「Knative Eventing でのブローカーの使用」の説明に従うか、またはトリガーの作成時に--inject-brokerフラグを使用して作成できます。このフラグの使用方法については、以下の手順で説明します。- Knative サービスなどの利用可能なイベントコンシューマー。
10.4.2. kn を使用したトリガーの作成 リンクのコピーリンクがクリップボードにコピーされました!
手順
トリガーを作成します。
$ kn trigger create <trigger_name> --broker <broker_name> --filter <key=value> --sink <sink_name>トリガーを作成し、またブローカー挿入を使用して
defaultブローカーを作成するには、以下のコマンドを入力します。$ kn trigger create <TRIGGER-NAME> --inject-broker --filter <KEY=VALUE> --sink <SINK>
トリガー YAML の例:
apiVersion: eventing.knative.dev/v1alpha1
kind: Trigger
metadata:
name: trigger-example
spec:
broker: default
subscriber:
ref:
apiVersion: serving.knative.dev/v1
kind: Service
name: my-service
10.4.3. kn を使用したトリガーの一覧表示 リンクのコピーリンクがクリップボードにコピーされました!
kn trigger list コマンドは利用可能なトリガーの一覧を出力します。
手順
利用可能なトリガーの一覧を出力します。
$ kn trigger list出力例
NAME BROKER SINK AGE CONDITIONS READY REASON email default svc:edisplay 4s 5 OK / 5 True ping default svc:edisplay 32s 5 OK / 5 True
10.4.4. JSON 形式の kn を使用したトリガーの一覧表示 リンクのコピーリンクがクリップボードにコピーされました!
手順
JSON 形式でトリガーの一覧を出力します。
$ kn trigger list -o json
10.4.5. kn を使用したトリガーの記述 リンクのコピーリンクがクリップボードにコピーされました!
kn trigger describe コマンドは、トリガーについての情報を出力します。
手順
コマンドを入力します。
$ kn trigger describe <trigger_name>出力例
Name: ping Namespace: default Labels: eventing.knative.dev/broker=default Annotations: eventing.knative.dev/creator=kube:admin, eventing.knative.dev/lastModifier=kube:admin Age: 2m Broker: default Filter: type: dev.knative.event Sink: Name: edisplay Namespace: default Resource: Service (serving.knative.dev/v1) Conditions: OK TYPE AGE REASON ++ Ready 2m ++ BrokerReady 2m ++ DependencyReady 2m ++ Subscribed 2m ++ SubscriberResolved 2m
10.4.6. kn を使用したトリガーの削除 リンクのコピーリンクがクリップボードにコピーされました!
手順
- トリガーを削除します。
$ kn trigger delete <trigger_name>
10.4.7. kn を使用したトリガーの更新 リンクのコピーリンクがクリップボードにコピーされました!
特定のフラグを指定して kn trigger update コマンドを使用して、トリガーの属性を更新できます。
例
トリガーを、受信イベントに一致するイベント属性をフィルターするように更新できます (例:
type=knative.dev.event)。$ kn trigger update <trigger_name> --filter type=knative.dev.eventキー
typeでフィルター属性を削除します。$ kn trigger update mytrigger --filter type-トリガーのシンクを更新し、
event-displayという名前のサービスを使用できるようにします。$ kn trigger update <trigger_name> --sink svc:event-display
10.4.8. トリガーを使用したイベントのフィルター リンクのコピーリンクがクリップボードにコピーされました!
以下のトリガーの例では、type: dev.knative.samples.helloworld 属性のあるイベントのみがイベントシンクに到達します。
$ kn trigger create <trigger_name> --broker <broker_name> --filter type=dev.knative.samples.helloworld --sink svc:<service_name>
複数の属性を使用してイベントをフィルターすることもできます。以下の例は、type、source、および extension 属性を使用してイベントをフィルターする方法を示しています。
$ kn trigger create <trigger_name> --broker <broker_name> --sink svc:<service_name> \
--filter type=dev.knative.samples.helloworld \
--filter source=dev.knative.samples/helloworldsource \
--filter myextension=my-extension-value