第1章 Kamelets の概要
Kamelets は、イベント駆動型のアーキテクチャーソリューションでビルディングブロックとして使用できる高レベルのコネクターです。これらは OpenShift クラスターにインストールし、Camel K インテグレーションで使用できるカスタムリソースです。Kamelets は開発作業を加速します。これらは、データソース (イベントを出力する) およびデータシンク (イベントを消費する) の接続を単純化します。コードを作成するのではなく、kamelet パラメーターを設定します。kamelets を使用するために Camel DSL について理解する必要はありません。
kamelets を使用して、アプリケーションとサービスを直接相互に接続したり、以下に接続できます。
- Kafka トピック (「Connecting to Kafka with Kamelets」に記載)
- Knative 接続先 (チャネルまたはブローカー) (「Connecting to Knative with Kamelets」に記載)
- 特定の Camel URI (「Connecting to an explicit Camel URI」に記載)
1.1. kamelets について
Kamelets は、Camel インテグレーションでコネクターとして動作するルートコンポーネント (カプセル化されたコード) です。kamelets は、データの消費元 (ソース) や、データの送信先 (シンク) を定義するテンプレートと考えることができます。これにより、データのパイプラインをアセンブルできます。Kamelets は、データのフィルタリング、マスク、および単純な計算ロジックを実行することもできます。
kamelets には、以下の 3 つのタイプがあります。
- ソース: データを作成するルート。ソース kamelet を使用してコンポーネントからデータを取得します。
- シンク: データを消費するルート。シンク kamelet を使用してデータをコンポーネントに送信します。
- アクション: データに対してアクションを実行するルート。ソース kamelet からシンク kamelet に渡す際に、アクション kamelet を使用してデータを操作できます。
1.1.1. kamelets を使用する理由
マイクロサービス および イベント駆動型のアーキテクチャー ソリューションでは、kamelets はイベントを出力するソースおよびイベントを消費するシンクのビルディングブロックとして機能できます。
Kamelets は、抽象化 (外部システムへの接続の複雑さを隠します) および再利用性 (コードを再利用し、異なるユースケースに適用する簡単な方法です) を提供します。
使用例を以下に示します。
- アプリケーションが Telegram からのイベントを消費するようにするには、kamelets を使用して Telegram ソースをイベントのチャネルにバインドできます。後に、それらのイベントに反応するように、アプリケーションをそのチャネルに接続できます。
- アプリケーションが Salesforce を直接 Slack に接続することを希望します。
Kamelets を使用すると、統合開発チームの効率が高くなります。kamelets を再利用し、特定のニーズに合わせてインスタンスを設定できるチームメンバーとそれらを共有することができます。基礎となる Camel K Operator はハードな作業を行います。これは、kamelet で定義されるインテグレーションをコンパイルし、ビルドし、パッケージ化し、デプロイします。
1.1.2. kamelets を使用するユーザー
kamelets を使用すると、Camel インテグレーションで行う必要があるコーディングの量を減らすことができるため、Camel DSL に精通していない開発者に適しています。Kamelets は、Camel 以外の開発者の学習曲線を円滑化することができます。Camel を稼働させるのに、別のフレームワークまたは言語を学ぶ必要はありません。
Kamelets は、複雑な Camel インテグレーションロジックを再利用可能な kamelet にカプセル化し、それを他のユーザーと共有したい、経験のある Camel 開発者にも役立ちます。
1.1.3. kamelets を使用する前提条件
Kamelets を使用するには、以下の環境を設定する必要があります。
- 適切なアクセスレベルで OpenShift 4.6 (またはそれ以降の) クラスターにアクセスできること。この場合、プロジェクトの作成および Operator のインストールができること。また、OpenShift および Camel K CLI ツールをローカルシステムにインストールできること。
- 「Installing Camel」で説明されているように、namespace またはクラスター全体に Camel K Operator がインストールされている。
-
OpenShift コマンドライン (
oc
) インターフェースツールがインストールされている。 必要に応じて、VS コードまたは別の開発ツールを Camel K プラグインと共にインストールしている。Camel ベースのツールエクステンションには、組み込まれた kamelet カタログを基にした Camel URI の自動補完などの機能が含まれます。詳細は、『Getting Started with Camel Kafka Connector』の「Camel K development tooling」セクションを参照してください。
注記: Visual Studio (VS) Code Tooling エクステンションはコミュニティーのみです。
1.1.4. kamelets の使用方法
通常、kamelet を使用するには、再利用可能なルートスニペットを定義する kamelet 自体と、1 つ以上の kamelets を一緒に参照およびバインドする kamelet バインディングの 2 つのコンポーネントが必要です。kamelet バインディングは OpenShift リソース (KameletBinding
) です。
kamelet バインディングリソースでは、以下が可能になります。
- シンクまたはソース kamelet をイベントのチャネルに接続します: Kafka トピックまたは Knative 接続先 (チャネルまたはブローカー)
- シンク kamelet を直接 Camel Uniform Resource Identifier (URI) に接続します。URI とシンク kamelet を接続することが最も一般的なユースケースですが、ソース kamelet を Camel URI に接続することもできます。
- イベントのチャネルを中間層として使用せずに、シンクとソース kamelet を相互に直接接続します。
- 同じ kamelet バインディングで同じ kamelet を複数回参照します。
- ソース kamelet からシンク kamelet に渡す際に、アクション kamelets を追加してデータを操作します。
- イベントデータの送受信時に失敗した場合に Camel K が何を行うべきかを指定する、エラー処理ストラテジーを定義します。
ランタイム時に、Camel K Operator は kamelet バインディングを使用して Camel K インテグレーションを生成および実行します。
注記: Camel DSL の開発者は Camel K インテグレーションで直接 kamelets を使用できますが、kamelets を実装する簡単な方法は、kamelet バインディングリソースを指定して高レベルなイベントフローを構築することです。