第4章 Kamelets 参照
4.1. Kamelet 構造
通常、kamelet は YAML ドメイン固有の言語でコーディングされます。ファイル名の接頭辞は、kamelet の名前です。たとえば、FTP sink という名前の kamelet のファイル名は ftp-sink.kamelet.yaml
です。
OpenShift では、kamelet は、(ファイル名ではなく) kamelet の名前を表すリソースであることに注意してください。
概略では、kamelet リソースは以下を説明します。
-
kamelet の ID、および kamelet のタイプ (
source
、sink
、またはaction
) 等のその他の情報が含まれるメタデータセクション。 - kamelet の設定に使用できるパラメーターセットが含まれる定義 (JSON-schema 仕様)。
-
kamelet によって想定される入出力に関する情報が含まれるオプションの
types
セクション。 - kamelet の実装を定義する YAML DSL の Camel フロー。
以下の図は、kamelet とその部分の例を示しています。
kamelet 構造の例
telegram-text-source.kamelet.yaml apiVersion: camel.apache.org/v1alpha1 kind: Kamelet metadata: name: telegram-source 1 annotations: 2 camel.apache.org/catalog.version: "master-SNAPSHOT" camel.apache.org/kamelet.icon: "data:image/..." camel.apache.org/provider: "Red Hat" camel.apache.org/kamelet.group: "Telegram" labels: 3 camel.apache.org/kamelet.type: "source" spec: definition: 4 title: "Telegram Source" description: |- Receive all messages that people send to your telegram bot. required: - authorizationToken type: object properties: authorizationToken: title: Token description: The token to access your bot on Telegram, that you can obtain from the Telegram "Bot Father". type: string format: password x-descriptors: - urn:alm:descriptor:com.tectonic.ui:password types: 5 out: mediaType: application/json dependencies: - "camel:jackson" - "camel:kamelet" - "camel:telegram" flow: 6 from: uri: telegram:bots parameters: authorizationToken: "{{authorizationToken}}" steps: - marshal: json: {} - to: "kamelet:sink"
- kamelet ID: kamelet を参照する場合は Camel K インテグレーションでこの ID を使用します。
- アイコンなどのアノテーションは、kamelet の表示機能を提供します。
- ラベルを使用すると、ユーザーは kamelets にクエリーできます (例:「ソース」、「シンク」、または「アクション」により)。
- JSON-schema 仕様形式の kamelet およびパラメーターの説明。
- 出力のメディアタイプ (スキーマを含む)。
- kamelet の動作を定義するルートテンプレート。