3.2.2. Knative チャネルの作成

Knative チャネルは、イベントを転送するカスタムリソースです。イベントがイベントソースまたは生成側からチャネルに送信された後に、これらのイベントはサブスクリプションを使用して複数の Knative サービスまたは他のシンクに送信できます。

この例では、開発の目的で OpenShift Serverless で使用する InMemoryChannel チャネルを使用します。InMemoryChannel タイプのチャネルには、以下の制限事項があることに注意してください。

  • イベントの永続性は利用できません。Pod がダウンすると、その Pod のイベントが失われます。
  • InMemoryChannel チャネルはイベントの順序を実装しないため、チャネルで同時に受信される 2 つのイベントはいずれの順序でもサブスクライバーに配信できます。
  • サブスクライバーがイベントを拒否する場合、再配信はデフォルトで試行されません。Subscription オブジェクトの delivery 仕様を変更することで、再配信の試行を設定できます。

前提条件

  • OpenShift Serverless Operator、Knative Eventing、および Knative Serving コンポーネントが OpenShift Container Platform クラスターにインストールされている。
  • *OpenShift Serverless CLI (kn) がインストールされている。
  • OpenShift Container Platform でアプリケーションおよび他のワークロードを作成するために、プロジェクトを作成しているか、適切なロールおよびパーミッションを持つプロジェクトにアクセスできる。

手順

  1. OpenShift クラスターにログインします。
  2. インテグレーションアプリケーションを作成するプロジェクトを開きます。以下に例を示します。

    oc project camel-k-knative

  3. Knative (kn) CLI コマンドを使用してチャネルを作成します。

    kn channel create <channel_name> --type <channel_type>

    たとえば、mychannel という名前のチャネルを作成するには、以下を実行します。

    kn channel create mychannel --type messaging.knative.dev:v1:InMemoryChannel

  4. チャネルが存在することを確認するには、以下のコマンドを入力してすべての既存チャネルを一覧表示します。

    kn channel list

    チャネルが一覧に表示されます。