5.2. トリガーの作成
Knative Eventing の Triggers を使用すると、要件に基づいて、ブローカーから特定のサブスクライバーにイベントをルーティングできます。Trigger を定義することで、イベントプロデューサーのコンシューマーへの動的な接続を可能にし、イベントが正しい宛先に配信されるようにします。このセクションでは、Trigger を作成し、そのフィルターを設定して、その機能を検証する手順を説明します。シンプルなルーティングのニーズでも、複雑なイベント駆動型ワークフローでも対応できます。
次の例は、Triggers の一般的な設定を示し、イベントを Knative サービスまたはカスタムエンドポイントにルーティングする方法を示しています。
Knative Serving サービスへのイベントのルーティング例
次の Trigger は、すべてのイベントをデフォルトのブローカーから my-service
という名前の Knative Serving サービスにルーティングします。
デバッグの目的で、filter
属性なしですべてのイベントをルーティングすることを推奨します。これにより、すべての受信イベントを観察および分析して、特定のフィルターを適用する前に問題を特定したり、ブローカーを介したイベントのフローを検証したりできます。フィルタリングの詳細は、高度なトリガーフィルター を参照してください。
このトリガーを適用するには、設定をファイル (trigger.yaml
など) に保存し、次のコマンドを実行します。
oc apply -f trigger.yaml
$ oc apply -f trigger.yaml
イベントをカスタムパスにルーティングする例
この Trigger は、デフォルトのブローカーからのすべてのイベントを、my-service
という名前のサービスのカスタムパス /my-custom-path
にルーティングします。
設定をファイル (custom-path-trigger.yaml
など) に保存し、次のコマンドを実行できます。
oc apply -f custom-path-trigger.yaml
$ oc apply -f custom-path-trigger.yaml
5.2.1. トリガーの作成 リンクのコピーリンクがクリップボードにコピーされました!
OpenShift Container Platform Web コンソールを使用すると、トリガーを作成するための合理的で直感的なユーザーインターフェイスが提供されます。Knative Eventing がクラスターにインストールされ、ブローカーが作成されると、Web コンソールを使用してトリガーを作成できます。
前提条件
- OpenShift Serverless Operator、Knative Serving、および Knative Eventing が OpenShift Container Platform クラスターにインストールされている。
- Web コンソールにログインしている。
- OpenShift Container Platform でアプリケーションおよび他のワークロードを作成するために、プロジェクトを作成しているか、適切なロールおよびパーミッションを持つプロジェクトにアクセスできる。
- トリガーに接続するために、ブローカーおよび Knative サービスまたは他のイベントシンクを作成している。
手順
- Topology ページに移動します。
- トリガーを作成するブローカーにカーソルを合わせ、矢印をドラッグします。Add Trigger オプションが表示されます。
- Add Trigger をクリックします。
- Subscriber リストでシンクを選択します。
- Add をクリックします。
検証
- サブスクリプションの作成後に、これを Topology ページで表示できます。ここでは、ブローカーをイベントシンクに接続する線として表されます。
トリガーの削除
- Topology ページに移動します。
- 削除するトリガーをクリックします。
- Actions コンテキストメニューで、Delete Trigger を選択します。
5.2.2. Knative CLI を使用したトリガーの作成 リンクのコピーリンクがクリップボードにコピーされました!
kn trigger create
コマンドを使用して、トリガーを作成できます。
前提条件
- OpenShift Serverless Operator および Knative Eventing が OpenShift Container Platform クラスターにインストールされている。
-
Knative (
kn
) CLI がインストールされている。 - OpenShift Container Platform でアプリケーションおよび他のワークロードを作成するために、プロジェクトを作成しているか、適切なロールおよびパーミッションを持つプロジェクトにアクセスできる。
手順
トリガーを作成します。
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
属性を使用すると、ブローカーからイベントをフィルターできるため、サブスクライバーは定義された基準に基づくイベントのサブセットのみを受け取ることができます。