5.12.3. Knative CLI を使用したサブスクリプションの作成
チャネルとイベントシンクを作成したら、サブスクリプションを作成してイベント配信を有効にすることができます。サブスクリプションを作成するために Knative (kn) CLI を使用すると、YAML ファイルを直接修正するよりも合理的で直感的なユーザーインターフェイスが得られます。kn subscription create コマンドを適切なフラグとともに使用して、サブスクリプションを作成できます。
前提条件
- OpenShift Serverless Operator および Knative Eventing が OpenShift Container Platform クラスターにインストールされている。
-
Knative (
kn) CLI をインストールしている。 - OpenShift Container Platform でアプリケーションおよび他のワークロードを作成するために、プロジェクトを作成しているか、適切なロールおよびパーミッションを持つプロジェクトにアクセスできる。
手順
サブスクリプションを作成し、シンクをチャネルに接続します。
$ kn subscription create <subscription_name> \ --channel <group:version:kind>:<channel_name> \1 --sink <sink_prefix>:<sink_name> \2 --sink-dead-letter <sink_prefix>:<sink_name>3 - 1
--channelは、処理する必要のあるクラウドイベントのソースを指定します。チャネル名を指定する必要があります。ChannelカスタムリソースでサポートされるデフォルトのInMemoryChannelチャネルを使用しない場合には、チャネル名に指定されたチャネルタイプの<group:version:kind>の接頭辞を付ける必要があります。たとえば、これは Kafka 対応チャネルのmessaging.knative.dev:v1beta1:KafkaChannelのようになります。- 2
--sinkは、イベントが配信されるターゲット宛先を指定します。デフォルトで、<sink_name>は、サブスクリプションと同じ namespace でこの名前の Knative サービスとして解釈されます。以下の接頭辞のいずれかを使用して、シンクのタイプを指定できます。ksvc- Knative サービス
channel- 宛先として使用する必要のあるチャネル。ここで参照できるのは、デフォルトのチャネルタイプのみです。
broker- Eventing ブローカー。
- 3
- オプション:
--sink-dead-letterは、イベントが配信に失敗する場合にイベントを送信するシンクを指定するために使用できるオプションのフラグです。詳細は、OpenShift Serverless の Event 配信についてのドキュメントを参照してください。コマンドの例
$ kn subscription create mysubscription --channel mychannel --sink ksvc:event-display出力例
Subscription 'mysubscription' created in namespace 'default'.
検証
サブスクリプションを使用してチャネルがイベントシンクまたは サブスクライバー に接続されていることを確認するには、既存のサブスクリプションを一覧表示し、出力を検査します。
$ kn subscription list出力例
NAME CHANNEL SUBSCRIBER REPLY DEAD LETTER SINK READY REASON mysubscription Channel:mychannel ksvc:event-display True
サブスクリプションの削除
サブスクリプションを削除します。
$ kn subscription delete <subscription_name>