This documentation is for a release that is no longer maintained
See documentation for the latest supported version 3 or the latest supported version 4.第10章 イベントワークフロー
10.1. ブローカーおよびトリガーを使用したイベント配信ワークフロー リンクのコピーリンクがクリップボードにコピーされました!
ブローカーは トリガー と組み合わせて、イベントを イベントソース からイベントシンクに配信できます。
イベントは、HTTP POST リクエストとしてイベントソースからブローカーに送信されます。
イベントがブローカーに送信された後に、それらはトリガーを使用して CloudEvent 属性 でフィルターされ、HTTP POST リクエストとしてイベントシンクに送信できます。
10.1.1. ブローカーの作成 リンクのコピーリンクがクリップボードにコピーされました!
OpenShift Serverless は、Knative CLI を使用して作成できる default
の Knative ブローカーを提供します。また、クラスター管理者の場合は eventing.knative.dev/injection=enabled
ラベルを namespace に追加するか、または開発者の場合は eventing.knative.dev/injection: enabled
アノテーションをトリガーに追加して、default
ブローカーを作成することもできます。
開発者およびクラスター管理者はどちらも挿入 (injection) によってブローカーを追加できますが、クラスター管理者のみがこの方法を使用して作成されたブローカーを永続的に削除できます。
10.1.1.1. Knative CLI を使用したブローカーの作成 リンクのコピーリンクがクリップボードにコピーされました!
前提条件
- OpenShift Serverless Operator および Knative Eventing が OpenShift Container Platform クラスターにインストールされている。
-
kn
CLI がインストールされている。
手順
default
ブローカーを作成します。kn broker create default
$ kn broker create default
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
検証
kn
コマンドを使用して、既存のブローカーを一覧表示します。kn broker list
$ kn broker list
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
NAME URL AGE CONDITIONS READY REASON default http://broker-ingress.knative-eventing.svc.cluster.local/test/default 45s 5 OK / 5 True
NAME URL AGE CONDITIONS READY REASON default http://broker-ingress.knative-eventing.svc.cluster.local/test/default 45s 5 OK / 5 True
Copy to Clipboard Copied! Toggle word wrap Toggle overflow オプション: OpenShift Container Platform Web コンソールを使用している場合、Developer パースペクティブの Topology ビューに移動し、ブローカーが存在することを確認できます。
10.1.1.2. トリガーのアノテーションによるブローカーの作成 リンクのコピーリンクがクリップボードにコピーされました!
eventing.knative.dev/injection: enabled
アノテーションを Trigger
オブジェクトに追加してブローカーを作成できます。
knative-eventing-injection: enabled
アノテーションを使用してブローカーを作成する場合、クラスター管理者パーミッションなしにこのブローカーを削除することはできません。クラスター管理者が最初にこのアノテーションを削除せずにブローカーを削除する場合、ブローカーは削除後に再び作成されます。
前提条件
- OpenShift Serverless Operator および Knative Eventing が OpenShift Container Platform クラスターにインストールされている。
手順
Trigger
オブジェクトを、eventing.knative.dev/injection: enabled
アノテーションを持つ.yaml
ファイルとして作成します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- トリガーがイベントを送信するイベントシンクまたは サブスクライバー の詳細を指定します。
.yaml
ファイルを適用します。oc apply -f <filename>
$ oc apply -f <filename>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
検証
oc
CLI を使用してブローカーが正常に作成されていることを確認するか、または Web コンソールの Topology ビューでこれを確認できます。
oc
コマンドを使用してブローカーを取得します。oc -n <namespace> get broker default
$ oc -n <namespace> get broker default
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
NAME READY REASON URL AGE default True http://broker-ingress.knative-eventing.svc.cluster.local/test/default 3m56s
NAME READY REASON URL AGE default True http://broker-ingress.knative-eventing.svc.cluster.local/test/default 3m56s
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Web コンソールで Topology ビューに移動し、ブローカーが存在することを確認します。
10.1.1.3. namespace へのラベル付けによるブローカーの作成 リンクのコピーリンクがクリップボードにコピーされました!
クラスター管理者のパーミッションがある場合は、namespace にラベルを付けて default
ブローカーを自動的に作成できます。
この方法を使用して作成されたブローカーは、ラベルを削除すると削除されません。これらは手動で削除する必要があります。
前提条件
- OpenShift Serverless Operator および Knative Eventing が OpenShift Container Platform クラスターにインストールされている。
- OpenShift Container Platform のクラスター管理者パーミッションがある。
手順
eventing.knative.dev/injection=enabled
で namespace にラベルを付ける。oc label namespace <namespace> eventing.knative.dev/injection=enabled
$ oc label namespace <namespace> eventing.knative.dev/injection=enabled
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
検証
oc
CLI を使用してブローカーが正常に作成されていることを確認するか、または Web コンソールの Topology ビューでこれを確認できます。
oc
コマンドを使用してブローカーを取得します。oc -n <namespace> get broker <broker_name>
$ oc -n <namespace> get broker <broker_name>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow コマンドの例
oc -n default get broker default
$ oc -n default get broker default
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
NAME READY REASON URL AGE default True http://broker-ingress.knative-eventing.svc.cluster.local/test/default 3m56s
NAME READY REASON URL AGE default True http://broker-ingress.knative-eventing.svc.cluster.local/test/default 3m56s
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Web コンソールで Topology ビューに移動し、ブローカーが存在することを確認します。
10.1.2. ブローカーの管理 リンクのコピーリンクがクリップボードにコピーされました!
kn
CLI は、ブローカーの一覧表示、説明、更新、および削除に使用できるコマンドを提供します。クラスター管理者は、挿入 (injection) を使用して作成されたブローカーを永続的に削除することもできます。
10.1.2.1. Knative CLI を使用した既存ブローカーの一覧表示 リンクのコピーリンクがクリップボードにコピーされました!
前提条件
- OpenShift Serverless Operator、Knative Serving、および Knative Eventing が OpenShift Container Platform クラスターにインストールされている。
-
kn
CLI がインストールされている。
手順
既存ブローカーの一覧を表示します。
kn broker list
$ kn broker list
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
NAME URL AGE CONDITIONS READY REASON default http://broker-ingress.knative-eventing.svc.cluster.local/test/default 45s 5 OK / 5 True
NAME URL AGE CONDITIONS READY REASON default http://broker-ingress.knative-eventing.svc.cluster.local/test/default 45s 5 OK / 5 True
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
10.1.2.2. Knative CLI を使用した既存ブローカーの記述 リンクのコピーリンクがクリップボードにコピーされました!
前提条件
- OpenShift Serverless Operator、Knative Serving、および Knative Eventing が OpenShift Container Platform クラスターにインストールされている。
-
kn
CLI がインストールされている。
手順
既存ブローカーを記述します。
kn broker describe <broker_name>
$ kn broker describe <broker_name>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow デフォルトブローカーを使用したコマンドの例
kn broker describe default
$ kn broker describe default
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
10.1.2.3. 挿入 (injection) によって作成されたブローカーの削除 リンクのコピーリンクがクリップボードにコピーされました!
namespace ラベルまたはトリガーアノテーションを使用して、挿入 (injection) によって作成されたブローカーは、開発者がラベルまたはアノテーションを削除した場合に永続的に削除されません。クラスター管理者のパーミッションを持つユーザーは、これらのブローカーを手動で削除する必要があります。
手順
eventing.knative.dev/injection=enabled
ラベルを namespace から削除します。oc label namespace <namespace> eventing.knative.dev/injection-
$ oc label namespace <namespace> eventing.knative.dev/injection-
Copy to Clipboard Copied! Toggle word wrap Toggle overflow アノテーションを削除すると、Knative では削除後にブローカーを再作成できなくなります。
選択された namespace からブローカーを削除します。
oc -n <namespace> delete broker <broker_name>
$ oc -n <namespace> delete broker <broker_name>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
検証
oc
コマンドを使用してブローカーを取得します。oc -n <namespace> get broker <broker_name>
$ oc -n <namespace> get broker <broker_name>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow コマンドの例
oc -n default get broker default
$ oc -n default get broker default
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
No resources found. Error from server (NotFound): brokers.eventing.knative.dev "default" not found
No resources found. Error from server (NotFound): brokers.eventing.knative.dev "default" not found
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
10.1.3. トリガーを使用したイベントのフィルター リンクのコピーリンクがクリップボードにコピーされました!
トリガーを使用すると、イベントシンクに配信するためにブローカーからイベントをフィルターできます。
前提条件
トリガーを使用する前に、以下が必要になります。
-
Knative Eventing および
kn
がインストールされている。 default
ブローカーまたは作成したブローカーのいずれかの利用可能なブローカー。default
ブローカーは、Knative Eventing でのブローカーの使用 の説明に従うか、またはトリガーの作成時に--inject-broker
フラグを使用して作成できます。このフラグの使用については、本セクションで説明します。- Knative サービスなどの利用可能なイベントコンシューマー。
10.1.3.1. Developer パースペクティブを使用したトリガーの作成 リンクのコピーリンクがクリップボードにコピーされました!
ブローカーの作成後は、Web コンソールの Developer パースペクティブでトリガーを作成できます。
前提条件
- OpenShift Serverless Operator、Knative Serving、および Knative Eventing が OpenShift Container Platform クラスターにインストールされている。
- Web コンソールにログインしている。
- Developer パースペクティブを使用している。
- OpenShift Container Platform でアプリケーションおよび他のワークロードを作成するために、プロジェクトを作成しているか、適切なロールおよびパーミッションを持つプロジェクトにアクセスできる。
- トリガーに接続するために、ブローカーおよび Knative サービスまたは他のイベントシンクを作成している。
手順
- Developer パースペクティブで、Topology ページに移動します。
トリガーを作成するブローカーにカーソルを合わせ、矢印をドラッグします。Add Trigger オプションが表示されます。
- Add Trigger を クリックします。
- ドロップダウンリストから、シンクを Subscriber として選択します。
- Add をクリックします。
検証
サブスクリプションの作成後に、これを Topology ビューでブローカーをサービスに接続する行として表示できます。
10.1.3.2. Developer パースペクティブを使用したトリガーの削除 リンクのコピーリンクがクリップボードにコピーされました!
Web コンソールの Developer パースペクティブでトリガーを削除できます。
前提条件
- Developer パースペクティブを使用してトリガーを削除するには、Web コンソールにログインしている必要があります。
手順
- Developer パースペクティブで、Topology ページに移動します。
- 削除するトリガーをクリックします。
Actions コンテキストメニューで、Delete Trigger を選択します。
10.1.3.3. kn を使用したトリガーの作成 リンクのコピーリンクがクリップボードにコピーされました!
kn trigger create
コマンドを使用してトリガーを作成できます。
手順
トリガーを作成します。
kn trigger create <trigger_name> --broker <broker_name> --filter <key=value> --sink <sink_name>
$ kn trigger create <trigger_name> --broker <broker_name> --filter <key=value> --sink <sink_name>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow または、トリガーを作成し、ブローカー挿入を使用して
default
ブローカーを同時に作成できます。kn trigger create <trigger_name> --inject-broker --filter <key=value> --sink <sink_name>
$ kn trigger create <trigger_name> --inject-broker --filter <key=value> --sink <sink_name>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow デフォルトで、トリガーはブローカーに送信されたすべてのイベントを、そのブローカーにサブスクライブされるシンクに転送します。トリガーの
--filter
属性を使用すると、ブローカーからイベントをフィルターできるため、サブスクライバーは定義された基準に基づくイベントのサブセットのみを受け取ることができます。
10.1.3.4. kn を使用したトリガーの一覧表示 リンクのコピーリンクがクリップボードにコピーされました!
kn trigger list
コマンドは利用可能なトリガーの一覧を出力します。
手順
利用可能なトリガーの一覧を出力するには、以下のコマンドを入力します。
kn trigger list
$ kn trigger list
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例:
NAME BROKER SINK AGE CONDITIONS READY REASON email default ksvc:edisplay 4s 5 OK / 5 True ping default ksvc:edisplay 32s 5 OK / 5 True
NAME BROKER SINK AGE CONDITIONS READY REASON email default ksvc:edisplay 4s 5 OK / 5 True ping default ksvc:edisplay 32s 5 OK / 5 True
Copy to Clipboard Copied! Toggle word wrap Toggle overflow オプション: JSON 形式でトリガーの一覧を出力します。
kn trigger list -o json
$ kn trigger list -o json
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
10.1.3.4.1. kn を使用したトリガーの記述 リンクのコピーリンクがクリップボードにコピーされました!
kn trigger describe
コマンドを使用して、トリガーについての情報を出力できます。
手順
トリガーについての情報を出力するには、以下のコマンドを入力します。
kn trigger describe <trigger_name>
$ kn trigger describe <trigger_name>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
10.1.3.4.2. トリガーを使用したイベントのフィルター リンクのコピーリンクがクリップボードにコピーされました!
以下のトリガーの例では、type: dev.knative.samples.helloworld
属性のあるイベントのみがイベントコンシューマーに到達します。
kn trigger create <trigger_name> --broker <broker_name> --filter type=dev.knative.samples.helloworld --sink ksvc:<service_name>
$ kn trigger create <trigger_name> --broker <broker_name> --filter type=dev.knative.samples.helloworld --sink ksvc:<service_name>
複数の属性を使用してイベントをフィルターすることもできます。以下の例は、type、source、および extension 属性を使用してイベントをフィルターする方法を示しています。
kn trigger create <trigger_name> --broker <broker_name> --sink ksvc:<service_name> \ --filter type=dev.knative.samples.helloworld \ --filter source=dev.knative.samples/helloworldsource \ --filter myextension=my-extension-value
$ kn trigger create <trigger_name> --broker <broker_name> --sink ksvc:<service_name> \
--filter type=dev.knative.samples.helloworld \
--filter source=dev.knative.samples/helloworldsource \
--filter myextension=my-extension-value
10.1.3.4.3. kn を使用したトリガーの更新 リンクのコピーリンクがクリップボードにコピーされました!
特定のフラグを指定して kn trigger update
コマンドを使用して、トリガーの属性を迅速に更新できます。
手順
トリガーを更新します。
kn trigger update <trigger_name> --filter <key=value> --sink <sink_name> [flags]
$ kn trigger update <trigger_name> --filter <key=value> --sink <sink_name> [flags]
Copy to Clipboard Copied! Toggle word wrap Toggle overflow トリガーを、受信イベントに一致するイベント属性をフィルターするように更新できます。たとえば、
type
属性を使用します。kn trigger update mytrigger --filter type=knative.dev.event
$ kn trigger update mytrigger --filter type=knative.dev.event
Copy to Clipboard Copied! Toggle word wrap Toggle overflow トリガーからフィルター属性を削除できます。たとえば、キー
type
を使用してフィルター属性を削除できます。kn trigger update mytrigger --filter type-
$ kn trigger update mytrigger --filter type-
Copy to Clipboard Copied! Toggle word wrap Toggle overflow --sink
パラメーターを使用して、トリガーのイベントシンクを変更できます。kn trigger update <trigger_name> --sink ksvc:my-event-sink
$ kn trigger update <trigger_name> --sink ksvc:my-event-sink
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
10.1.3.4.4. kn を使用したトリガーの削除 リンクのコピーリンクがクリップボードにコピーされました!
手順
トリガーを削除します。
kn trigger delete <trigger_name>
$ kn trigger delete <trigger_name>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
検証
既存のトリガーを一覧表示します。
kn trigger list
$ kn trigger list
Copy to Clipboard Copied! Toggle word wrap Toggle overflow トリガーが存在しないことを確認します。
出力例
No triggers found.
No triggers found.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow