第 4 章 Kamelets 参考


4.1. Kamelet 结构

Kamelet 通常以特定于 YAML 域特定语言进行编码。文件名前缀是 Kamelet 的名称。例如,名为 FTP sink 的 Kamelet 具有文件名 ftp-sink.kamelet.yaml

请注意,在 OpenShift 中,K Kamelet 是一个显示 Kamelet 名称(而不是文件名)的资源。

在高级别上,KKmelet 资源描述:

  • 包含 Kamelet 和其他信息的 ID 的 metadata 部分,如 Kamelet 类型(sinkaction)。
  • 一个定义(JSON-schema 规格),其中包含一组可用于配置 Kamelet 的参数。
  • 一个可选 类型 部分,其中包含 Kamelet 所期望的输入和输出信息。
  • YAML DSL 中的 Camel 模板,用于定义 Kamelet 实施。

下图显示了 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.
        To create a bot, contact the @botfather account using the
        Telegram app.
        The source attaches the following headers to the messages:
        - chat-id / ce-chatid: the ID of the chat where the
        message comes from
    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"
  template: 6
    from:
        uri: telegram:bots
        parameters:
            authorizationToken: "{{authorizationToken}}"
        steps:
        - set-header:
          name: chat-id
          simple: "${header[CamelTelegramChatId]}"
        - set-header:
          name: ce-chatid
          simple: "${header[CamelTelegramChatId]}"
        - marshal:
          json: {}
        - to: "kamelet:sink"
  1. Kamelet ID - 在您想要引用 Kamelet 时使用此 ID 在 Camel K 集成中。
  2. 注解,如图标,为 Kamelet 提供显示功能。
  3. 通过标签,用户可以查询 Kamelets (例如,按 kind: "source"、"sink" 或 "action")
  4. JSON-schema 规范格式的 Kamelet 和参数的描述。
  5. 输出的介质类型(可以包含架构)。
  6. 定义 Kamelet 行为的路由模板。
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.