第5章 既存の Kamelet カタログのカスタマイズ
このドキュメントでは、既存の kamelet のカスタマイズについて説明します。これには次の段階が含まれます。
- シンプルな kamelet の作成
- 既存の kamelet カタログのカスタマイズ
Red Hat は、独自の kamelet をゼロから実装することをサポートしていません。
5.1. シンプルな Kamelet の作成 リンクのコピーリンクがクリップボードにコピーされました!
Apache Camel は 300 超のコンポーネントを提供しており、すでに利用可能なコンポーネントの 1 つから始めることで、Kamelet を簡単に作成できます。公式カタログで入手可能な Kamelet のほとんどは、Kamelet のプロパティーを Camel エンドポイントのパラメーターに再マッピングしただけのシンプルなものです。
Twitter 上のデータを検索して、特定のキーワードに関する情報のストリームを提供できる Kamelet を提供する次の例を考えてみましょう。このような Kamelet を作成するには、camel-twitter コンポーネントのオプションを修正せずに使用できます。
シンプルな Kamelet を作成するには、Kamelet CLI を使用して新しい kamel リソースの構築を開始します。
kamel init twitter-search-source.kamelet.yaml
kamel init twitter-search-source.kamelet.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow これにより、次のような YAML ファイルが生成されます。
twitter-search-source.kamelet.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ファイルを変更して、Twitter 上で指定されたキーワードを検索するルートを作成します。
初期スキャフォールディング (timer-to-log) で提供されたルートは不正確であるため、次のように変更します。
twitter-search-source.kamelet.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - keywords は、Camel Twitter-search のパスパラメーターです。一部のエンドポイントパラメーターは 1 対 1 でマッピングされています。Camel コンポーネント ConsumerKey には、Twitter 開発者ポータルでの実際の名前を反映するために apiKey という名前が付けられています。
- Camel Twitter コンポーネントは Java オブジェクトを生成します。それらを JSON にマーシャリングする必要があります。ソース Kamelet は、実行時に別のターゲットに置き換えられる特別なエンドポイント "kamelet:sink" にデータを送信します。
上記の YAML ルートテンプレートは、twitter-search コンポーネントを使用して Twitter 上を検索します。Kamelet の出力にはネットワーク経由で転送する値が必要であるため、JSON にマーシャリングステップを追加しました。Kamelet を完成させるには、パラメーターを JSON スキーマ形式で文書化する必要があります。これは spec
definition 部分で指定されます。 twitter-search-source.kamelet.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
Kamelet に関するテキスト形式の一般情報は、以下のとおりです。
- Kamelet を作成するために必要なパラメーターのリスト
- 各パラメーターの仕様 (フラット構造で、ネストされたオプションは許可されない)
特定の UI (OpenShift コンソール) 向けのオプションでのグラフィカルカスタマイズ
最終的な Kamelet は次のようになります。
twitter-search-source.kamelet.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow カタログ上で共有した Kamelet や OpenShift クラスター上に作成した Kamelet を使用できます。
以下に例を示します。
シンプルなバインディングとともにクラスターに適用します。
- Camel K オペレーターが動作するには、Openshift クラスターを有効にし、namespace に接続する必要があります。
Kamelet を作成します。
kubectl apply -f twitter-search-source.kamelet.yaml
kubectl apply -f twitter-search-source.kamelet.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 次の例に示すようにバインディングを作成します。
twitter-search-source-binding.yaml`
Copy to Clipboard Copied! Toggle word wrap Toggle overflow これは以下を使用して作成できます。
kubectl apply -f twitter-search-source-binding.yaml
kubectl apply -f twitter-search-source-binding.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 作成したら、次を使用してバインディングのログを確認できます。
kamel logs twitter-search-source-binding
kamel logs twitter-search-source-bindingCopy to Clipboard Copied! Toggle word wrap Toggle overflow - 上記の手順を実行すると、統合が作成された後に、ログにいくつかのツイートが記録されるはずです。
- さまざまなコンテキスト (Knative、Kafka など) での使用方法の詳細は、Kamelets ユーザーガイド を参照してください。