第1章 Kamelets の概要
Kamelets は、イベント駆動型のアーキテクチャーソリューションでビルディングブロックとして使用できる高レベルのコネクターです。これらは OpenShift クラスターにインストールし、Camel K インテグレーションで使用できるカスタムリソースです。Kamelets は開発作業を加速します。これらは、データソース (イベントを出力する) およびデータシンク (イベントを消費する) の接続を単純化します。コードを記述するのではなく Kamelet パラメーターを設定するため、Kamelets を使用するのに Camel DSL を理解する必要はありません。
Kamelets を使用して、アプリケーションとサービスを相互に直接接続することができます。あるいは、以下の項目に接続することができます。
- Kafka トピック ( Kamelets を使用した Kafka への接続 で説明)
- Knative 宛先 (チャネルまたはブローカー)(Kamelets を使用した Knative への接続 で説明)
- 特定の Camel URI (明示的な 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 を使用するユーザー
Kame を使用すると、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 K で説明されているように、namespace またはクラスター全体に Camel K Operator がインストールされている。
-
OpenShift コマンドライン (
cc
) インターフェイスツールがインストールされている。 必要に応じて、VS コードまたは別の開発ツールを Camel K プラグインと共にインストールしている。Camel ベースのツールエクステンションには、埋め込み Kamelet Catalog に基づく Camel URI の自動補完などの機能が含まれます。詳細は、Getting Started with Camel Kの Camel K development tooling セクションを参照してください。
注記: Visual Studio (VS) Code Tooling エクステンションはコミュニティーのみです。
1.1.4. Kamelets の使用方法
Kamelet を使用する場合には通常、再利用可能なルートスニペットを定義する Kamelet 自体と、1 つ以上の Kamelets を参照してバインドする Kamelet Binding という 2 つのコンポーネントが必要です。Kamelet Binding は OpenShift リソース (KameletBinding
) です。
Kamelet Binding リソース内では、以下を実行できます。
- シンクまたはソース Kamelet を、Kafka トピックまたは Knative 宛先 (チャネルまたはブローカー) のイベントチャネルに接続します。
- シンク Kamelet を直接 Camel Uniform Resource Identifier (URI) に接続します。URI およびシンク Kamelet の接続は最も一般的なユースケースであるものの、ソース Kamelet を Camel URI に接続することもできます。
- イベントのチャネルを中間層として使用せずに、シンクおよびソース Kamelet を直接相互に接続します。
- 同じ Kamelet Binding で同じ Kamelet を複数回参照します。
- ソース Kamelet からシンク Kamelet にデータを渡す際にデータを操作する、アクション Kamelet を追加します。
- イベントデータの送受信時に失敗した場合に Camel K が何を行うべきかを指定する、エラー処理ストラテジーを定義します。
実行時に、Camel K Operator は Kamelet Binding を使用して Camel K インテグレーションを生成し、実行します。
注記:Camel DSL の開発者は Camel K インテグレーションで Kamelets を直接使用できますが、Kamelets を実装する簡単な方法は、Kamelet Binding リソースを指定して高レベルのイベントフローを構築することです。