红帽构建的 Apache Camel for Quarkus 的 kamelets 参考


Red Hat build of Apache Camel 4.10

红帽构建的 Apache Camel for Quarkus 的 kamelets 参考

摘要

Kamelets 提供了应用程序集成的替代方法。您可以配置 Kamelets (基于路由模板)来创建连接,而不是直接使用 Camel 组件。

前言

向红帽构建的 Apache Camel 文档提供反馈

要报告错误或改进文档,请登录您的红帽 JIRA 帐户并提交问题。如果您没有红帽 JIRA 帐户,系统会提示您创建一个帐户。

流程

  1. 点击以下链接 创建 ticket
  2. 在 Summary 中输入问题的简短描述。
  3. 提供有关描述中问题或功能增强的详细描述。包括一个 URL,以在文档中发生问题。
  4. 点 Submit 创建问题并将其路由到适当的文档团队。

第 1 章 AWS DynamoDB Sink

将数据发送到 Amazon DynamoDB。发送的数据插入、更新或删除指定 AWS DynamoDB 表中的项目。

1.1. 身份验证方法

在这个 Kamelet 中,您可以通过指定 useDefaultCredentialsProvider 选项并将其设置为 true 来避免使用显式静态凭证。

以下为 Default Credentials Provider 评估顺序如下:

  • Java 系统属性 - aws.accessKeyIdaws.secretKey.
  • 环境变量 - AWS_ACCESS_KEY_IDAWS_SECRET_ACCESS_KEY
  • AWS STS 的 Web Identity Token。
  • 共享凭证和配置文件。
  • Amazon ECS 容器凭据 - 如果设置了环境变量 AWS_CONTAINER_CREDENTIALS_RELATIVE_URI,则从 Amazon ECS 加载。
  • Amazon EC2 实例配置集凭据。

您还可以通过将 useProfileCredentialsProvider 选项设置为 true,将 profileCredentialsName 设置为配置集名称来使用 Profile Credentials Provider。

只能使用其中一个 access key/secret 密钥或默认凭证提供程序

如需更多信息,请参阅 AWS 凭证文档

1.2. sink 的预期数据格式

此 Kamelet 需要 JSON 格式的正文,它必须包含定义 DynamoDB 项的主键值。JSON 字段和表属性值之间的映射是通过键完成的。例如,对于 '{"username":"oscerd", "city":"Rome"}' 输入, Kamelet 会插入或更新指定 AWS DynamoDB 表中的项目,并设置 'username' 和 'city' 属性的值。

对于 PutItem 操作,Json 正文定义所有项目属性。对于 DeleteItem 操作,Json 正文仅定义标识要删除的项目的主要键属性。对于 UpdateItem 操作,Json 正文定义了两个键属性,用于识别要更新的项目,以及项目上的所有项目属性更新。

给定的 JSON 正文可以使用 操作keyitem 作为映射到对应属性值映射的顶级属性。

      {
        "operation": "PutItem"
        "key": {},
        "item": {}
      }
Copy to Clipboard Toggle word wrap

1.3. 配置选项

下表总结了 aws-ddb-sink Kamelet 可用的选项:

Expand
属性名称描述类型默认示例

region *

AWS 区域

用于访问的 AWS 区域。

字符串

  

table *

DynamoDB 表的名称。

字符串

  

accessKey

访问密钥

从 AWS 获取的访问密钥。

字符串

  

operation

操作

要执行的操作。

字符串

PutItem

PutItem

overrideEndpoint

端点覆盖

选择这个选项来覆盖端点 URI。要使用这个选项,还必须为 uriEndpointOverride 选项提供 URI。

布尔值

False

 

profileCredentialsName

配置集凭证名称

如果使用配置集凭证供应商,此参数会设置配置集名称。

字符串

  

secretKey

机密密钥

从 AWS 获取的 secret 密钥。

字符串

  

sessionToken

会话令牌

当用户需要假定 IAM 角色时使用的 Amazon AWS Session Token。

字符串

  

uriEndpointOverride

覆盖 Endpoint URI

覆盖端点 URI。要使用这个选项,还必须选择 overrideEndpoint 选项。

字符串

  

useDefaultCredentialsProvider

默认凭证提供程序

如果为 true,则 DynamoDB 客户端通过默认凭据提供程序加载凭据。如果为 false,它将使用基本的身份验证方法(access key 和 secret key)。

布尔值

False

 

useProfileCredentialsProvider

配置集凭证供应商

设置 DynamoDB 客户端是否应该预期通过配置文件凭据提供程序加载凭据。

布尔值

False

 

useSessionCredentials

会话凭证

设置 DynamoDB 客户端是否应该预期使用 Session Credentials。这在用户需要假设 IAM 角色在 DynamoDB 中执行操作时非常有用。

布尔值

False

 

* = 标记为星号的字段 是必需的

1.4. 依赖项

1.4.1. Quarkus 依赖项

<dependencies>
  <dependency>
    <groupId>org.apache.camel.kamelets</groupId>
    <artifactId>camel-kamelets-utils</artifactId>
    <version>4.8.5</version>
  </dependency>
  <dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifactId>camel-quarkus-aws2-ddb</artifactId>
  </dependency>
  <dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifactId>camel-quarkus-jackson</artifactId>
  </dependency>
  <dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifactId>camel-quarkus-kamelet</artifactId>
  </dependency>
</dependencies>
Copy to Clipboard Toggle word wrap

1.5. 使用方法

1.5.1. Camel JBang 用法

1.5.1.1. JBang 的先决条件
  • 安装 JBang
  • 您已执行以下命令:

    jbang app install camel@apache/camel
    Copy to Clipboard Toggle word wrap
1.5.1.2. 使用 JBang 运行路由

假设有一个名为 route.yaml 的文件,其中包含此内容:

- route:
    from:
      uri: "kamelet:timer-source"
      parameters:
        period: 10000
        message: 'test'
      steps:
        - to:
            uri: "kamelet:log-sink"
Copy to Clipboard Toggle word wrap

现在,您可以直接使用以下命令运行它。

camel run route.yaml
Copy to Clipboard Toggle word wrap

1.5.2. Knative Sink

您可以通过将它绑定到 Knative 对象,使用 aws-ddb-sink Kamelet 作为 Knative sink。

aws-ddb-sink-binding.yaml

apiVersion: camel.apache.org/v1
kind: Pipe
metadata:
  name: aws-ddb-sink-binding
spec:
  source:
    ref:
      kind: Channel
      apiVersion: messaging.knative.dev/v1
      name: mychannel
  sink:
    ref:
      kind: Kamelet
      apiVersion: camel.apache.org/v1
      name: aws-ddb-sink
    properties:
      region: "eu-west-1"
      table: "The Table"
Copy to Clipboard Toggle word wrap

1.5.3. Kafka Sink

您可以通过将它绑定到 Kafka 主题,使用 aws-ddb-sink Kamelet 作为 Kafka sink。

aws-ddb-sink-binding.yaml

apiVersion: camel.apache.org/v1
kind: Pipe
metadata:
  name: aws-ddb-sink-binding
spec:
  source:
    ref:
      kind: KafkaTopic
      apiVersion: kafka.strimzi.io/v1beta1
      name: my-topic
  sink:
    ref:
      kind: Kamelet
      apiVersion: camel.apache.org/v1
      name: aws-ddb-sink
    properties:
      region: "eu-west-1"
      table: "The Table"
Copy to Clipboard Toggle word wrap

1.6. kamelets 源文件

https://github.com/jboss-fuse/camel-kamelets/blob/camel-kamelets-4.10.3-branch/kamelets/aws-ddb-sink.kamelet.yaml

第 2 章 avro Deserialize Action

反序列化有效负载到 Avro。

2.1. 配置选项

下表总结了 avro-deserialize-action Kamelet 可用的选项:

Expand
属性名称描述类型默认示例

schema

模式

在序列化期间使用的 Avro 模式(使用 JSON 格式的单行)

字符串

 

{"type": "record", "namespace": "com.example", "name": "FullName", "fields": [{"name": "first", "type": "string"},{"name": "last", "type": "string"}]}

validate

验证

指明是否需要针对 schema 验证内容

布尔值

True

 

* = 标记为星号的字段 是必需的

2.2. 依赖项

2.2.1. Quarkus 依赖项

<dependencies>
  <dependency>
    <groupId>org.apache.camel.kamelets</groupId>
    <artifactId>camel-kamelets-utils</artifactId>
    <version>4.8.5</version>
  </dependency>
  <dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifactId>camel-quarkus-avro-deserialize</artifactId>
  </dependency>
  <dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifactId>camel-quarkus-jackson-avro</artifactId>
  </dependency>
  <dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifactId>camel-quarkus-kamelet</artifactId>
  </dependency>
</dependencies>
Copy to Clipboard Toggle word wrap

2.3. 使用方法

2.3.1. Camel JBang 用法

2.3.1.1. JBang 的先决条件
  • 安装 JBang
  • 您已执行以下命令:

    jbang app install camel@apache/camel
    Copy to Clipboard Toggle word wrap
2.3.1.2. 使用 JBang 运行路由

假设有一个名为 route.yaml 的文件,其中包含此内容:

- route:
    from:
      uri: "kamelet:timer-source"
      parameters:
        period: 10000
        message: 'test'
      steps:
        - to:
            uri: "kamelet:log-sink"
Copy to Clipboard Toggle word wrap

现在,您可以直接使用以下命令运行它。

camel run route.yaml
Copy to Clipboard Toggle word wrap

2.3.2. Knative Action

您可以使用 avro-deserialize-action Kamelet 作为 Knative 绑定中的中间步骤。

avro-deserialize-action-binding.yaml

apiVersion: camel.apache.org/v1
kind: Pipe
metadata:
  name: avro-deserialize-action-binding
spec:
  source:
    ref:
      kind: Kamelet
      apiVersion: camel.apache.org/v1
      name: timer-source
    properties:
      message: '{"first":"Ada","last":"Lovelace"}'
  steps:
  - ref:
      kind: Kamelet
      apiVersion: camel.apache.org/v1
      name: json-deserialize-action
  - ref:
      kind: Kamelet
      apiVersion: camel.apache.org/v1
      name: avro-serialize-action
    properties:
      schema: "{\"type\": \"record\", \"namespace\": \"com.example\", \"name\": \"FullName\", \"fields\": [{\"name\": \"first\", \"type\": \"string\"},{\"name\": \"last\", \"type\": \"string\"}]}"
  - ref:
      kind: Kamelet
      apiVersion: camel.apache.org/v1
      name: avro-deserialize-action
    properties:
      schema: "{\"type\": \"record\", \"namespace\": \"com.example\", \"name\": \"FullName\", \"fields\": [{\"name\": \"first\", \"type\": \"string\"},{\"name\": \"last\", \"type\": \"string\"}]}"
  - ref:
      kind: Kamelet
      apiVersion: camel.apache.org/v1
      name: json-serialize-action
  sink:
    ref:
      kind: Channel
      apiVersion: messaging.knative.dev/v1
      name: mychannel
Copy to Clipboard Toggle word wrap

2.3.3. Kafka 操作

您可以使用 avro-deserialize-action Kamelet 作为 Kafka 绑定中的中间步骤。

avro-deserialize-action-binding.yaml

apiVersion: camel.apache.org/v1
kind: Pipe
metadata:
  name: avro-deserialize-action-binding
spec:
  source:
    ref:
      kind: Kamelet
      apiVersion: camel.apache.org/v1
      name: timer-source
    properties:
      message: '{"first":"Ada","last":"Lovelace"}'
  steps:
  - ref:
      kind: Kamelet
      apiVersion: camel.apache.org/v1
      name: json-deserialize-action
  - ref:
      kind: Kamelet
      apiVersion: camel.apache.org/v1
      name: avro-serialize-action
    properties:
      schema: "{\"type\": \"record\", \"namespace\": \"com.example\", \"name\": \"FullName\", \"fields\": [{\"name\": \"first\", \"type\": \"string\"},{\"name\": \"last\", \"type\": \"string\"}]}"
  - ref:
      kind: Kamelet
      apiVersion: camel.apache.org/v1
      name: avro-deserialize-action
    properties:
      schema: "{\"type\": \"record\", \"namespace\": \"com.example\", \"name\": \"FullName\", \"fields\": [{\"name\": \"first\", \"type\": \"string\"},{\"name\": \"last\", \"type\": \"string\"}]}"
  - ref:
      kind: Kamelet
      apiVersion: camel.apache.org/v1
      name: json-serialize-action
  sink:
    ref:
      kind: KafkaTopic
      apiVersion: kafka.strimzi.io/v1beta1
      name: my-topic
Copy to Clipboard Toggle word wrap

2.4. kamelets 源文件

https://github.com/jboss-fuse/camel-kamelets/blob/camel-kamelets-4.10.3-branch/kamelets/avro-deserialize-action.kamelet.yaml

第 3 章 avro Serialize Action

序列化有效负载到 Avro。

3.1. 配置选项

下表总结了 avro-serialize-action Kamelet 可用的选项:

Expand
属性名称描述类型默认示例

schema

模式

在序列化期间使用的 Avro 模式(使用 JSON 格式的单行)

字符串

 

{"type": "record", "namespace": "com.example", "name": "FullName", "fields": [{"name": "first", "type": "string"},{"name": "last", "type": "string"}]}

validate

验证

指明是否需要针对 schema 验证内容

布尔值

True

 

* = 标记为星号的字段 是必需的

3.2. 依赖项

3.2.1. Quarkus 依赖项

<dependencies>
  <dependency>
    <groupId>org.apache.camel.kamelets</groupId>
    <artifactId>camel-kamelets-utils</artifactId>
    <version>4.8.5</version>
  </dependency>
  <dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifactId>camel-quarkus-avro-serialize</artifactId>
  </dependency>
  <dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifactId>camel-quarkus-jackson-avro</artifactId>
  </dependency>
  <dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifactId>camel-quarkus-kamelet</artifactId>
  </dependency>
</dependencies>
Copy to Clipboard Toggle word wrap

3.3. 使用方法

3.3.1. Camel JBang 用法

3.3.1.1. JBang 的先决条件
  • 安装 JBang
  • 您已执行以下命令:

    jbang app install camel@apache/camel
    Copy to Clipboard Toggle word wrap
3.3.1.2. 使用 JBang 运行路由

假设有一个名为 route.yaml 的文件,其中包含此内容:

- route:
    from:
      uri: "kamelet:timer-source"
      parameters:
        period: 10000
        message: 'test'
      steps:
        - to:
            uri: "kamelet:log-sink"
Copy to Clipboard Toggle word wrap

现在,您可以直接使用以下命令运行它。

camel run route.yaml
Copy to Clipboard Toggle word wrap

3.3.2. Knative Action

您可以使用 avro-serialize-action Kamelet 作为 Knative 绑定中的中间步骤。

avro-serialize-action-binding.yaml

apiVersion: camel.apache.org/v1
kind: Pipe
metadata:
  name: avro-serialize-action-binding
spec:
  source:
    ref:
      kind: Kamelet
      apiVersion: camel.apache.org/v1
      name: timer-source
    properties:
      message: '{"first":"Ada","last":"Lovelace"}'
  steps:
  - ref:
      kind: Kamelet
      apiVersion: camel.apache.org/v1
      name: json-deserialize-action
  - ref:
      kind: Kamelet
      apiVersion: camel.apache.org/v1
      name: avro-serialize-action
    properties:
      schema: "{\"type\": \"record\", \"namespace\": \"com.example\", \"name\": \"FullName\", \"fields\": [{\"name\": \"first\", \"type\": \"string\"},{\"name\": \"last\", \"type\": \"string\"}]}"
  sink:
    ref:
      kind: Channel
      apiVersion: messaging.knative.dev/v1
      name: mychannel
Copy to Clipboard Toggle word wrap

3.3.3. Kafka 操作

您可以使用 avro-serialize-action Kamelet 作为 Kafka 绑定中的中间步骤。

avro-serialize-action-binding.yaml

apiVersion: camel.apache.org/v1
kind: Pipe
metadata:
  name: avro-serialize-action-binding
spec:
  source:
    ref:
      kind: Kamelet
      apiVersion: camel.apache.org/v1
      name: timer-source
    properties:
      message: '{"first":"Ada","last":"Lovelace"}'
  steps:
  - ref:
      kind: Kamelet
      apiVersion: camel.apache.org/v1
      name: json-deserialize-action
  - ref:
      kind: Kamelet
      apiVersion: camel.apache.org/v1
      name: avro-serialize-action
    properties:
      schema: "{\"type\": \"record\", \"namespace\": \"com.example\", \"name\": \"FullName\", \"fields\": [{\"name\": \"first\", \"type\": \"string\"},{\"name\": \"last\", \"type\": \"string\"}]}"
  sink:
    ref:
      kind: KafkaTopic
      apiVersion: kafka.strimzi.io/v1beta1
      name: my-topic
Copy to Clipboard Toggle word wrap

3.4. kamelets 源文件

https://github.com/jboss-fuse/camel-kamelets/blob/camel-kamelets-4.10.3-branch/kamelets/avro-serialize-action.kamelet.yaml

第 4 章 AWS CloudWatch Metrics Sink

将数据发送到 Amazon CloudWatch 指标。

4.1. 身份验证方法

在这个 Kamelet 中,您可以通过指定 useDefaultCredentialsProvider 选项并将其设置为 true 来避免使用显式静态凭证。

以下为 Default Credentials Provider 评估顺序如下:

  • Java 系统属性 - aws.accessKeyIdaws.secretKey.
  • 环境变量 - AWS_ACCESS_KEY_IDAWS_SECRET_ACCESS_KEY
  • AWS STS 的 Web Identity Token。
  • 共享凭证和配置文件。
  • Amazon ECS 容器凭据 - 如果设置了环境变量 AWS_CONTAINER_CREDENTIALS_RELATIVE_URI,则从 Amazon ECS 加载。
  • Amazon EC2 实例配置集凭据。

您还可以通过将 useProfileCredentialsProvider 选项设置为 true,将 profileCredentialsName 设置为配置集名称来使用 Profile Credentials Provider。

只能使用其中一个 access key/secret 密钥或默认凭证提供程序

如需更多信息,请参阅 AWS 凭证文档

4.2. 指标标头

在这个 Kamelet 中,您可以将以下标头用于指标:

  • metric-name / ce-metricname 用于指标名称。
  • metric-value / ce-metricvalue 用于指标值。
  • metric-unit / ce-metricunit 用于指标单元。
  • metric-timestamp / ce-metrictimestamp 用于指标时间戳。
  • metric-dimension-name / ce-metricdimensionname 用于维度名称。
  • metric-dimension-value / ce-metricdimensionvalue 用于维度值。

4.3. 配置选项

下表总结了 aws-cloudwatch-sink Kamelet 可用的选项:

Expand
属性名称描述类型默认示例

cwNamespace *

Cloud Watch Namespace

CloudWatch 指标命名空间。

字符串

  

region *

AWS 区域

用于访问的 AWS 区域。

字符串

  

accessKey

访问密钥

从 AWS 获取的访问密钥。

字符串

  

overrideEndpoint

端点覆盖

选择这个选项来覆盖端点 URI。要使用这个选项,还必须为 uriEndpointOverride 选项提供 URI。

布尔值

False

 

profileCredentialsName

配置集凭证名称

如果使用配置集凭证供应商,此参数会设置配置集名称。

字符串

  

secretKey

机密密钥

从 AWS 获取的 secret 密钥。

字符串

  

sessionToken

会话令牌

当用户需要假定 IAM 角色时使用的 Amazon AWS Session Token。

字符串

  

uriEndpointOverride

覆盖 Endpoint URI

覆盖端点 URI。要使用这个选项,还必须选择 overrideEndpoint 选项。

字符串

  

useDefaultCredentialsProvider

默认凭证提供程序

如果为 true,Cloudwatch 客户端会通过默认凭据提供程序加载凭据。如果为 false,它将使用基本的身份验证方法(access key 和 secret key)。

布尔值

False

 

useProfileCredentialsProvider

配置集凭证供应商

设置 Cloudwatch 客户端是否应该希望通过配置文件凭据提供程序加载凭据。

布尔值

False

 

useSessionCredentials

会话凭证

设置 Cloudwatch 客户端是否应该预期使用会话凭证。这在用户需要假设 IAM 角色在 Cloudwatch 中执行操作时非常有用。

布尔值

False

 

* = 标记为星号的字段 是必需的

4.4. 依赖项

4.4.1. Quarkus 依赖项

<dependencies>
  <dependency>
    <groupId>org.apache.camel.kamelets</groupId>
    <artifactId>camel-kamelets-utils</artifactId>
    <version>4.8.5</version>
  </dependency>
  <dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifactId>camel-quarkus-aws-cloudwatch</artifactId>
  </dependency>
  <dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifactId>camel-quarkus-aws-cw</artifactId>
  </dependency>
  <dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifactId>camel-quarkus-kamelet</artifactId>
  </dependency>
</dependencies>
Copy to Clipboard Toggle word wrap

4.5. 使用方法

4.5.1. Camel JBang 用法

4.5.1.1. JBang 的先决条件
  • 安装 JBang
  • 您已执行以下命令:

    jbang app install camel@apache/camel
    Copy to Clipboard Toggle word wrap
4.5.1.2. 使用 JBang 运行路由

假设有一个名为 route.yaml 的文件,其中包含此内容:

- route:
    from:
      uri: "kamelet:timer-source"
      parameters:
        period: 10000
        message: 'test'
      steps:
        - to:
            uri: "kamelet:log-sink"
Copy to Clipboard Toggle word wrap

现在,您可以直接使用以下命令运行它。

camel run route.yaml
Copy to Clipboard Toggle word wrap

4.5.2. Knative Sink

您可以通过将它绑定到 Knative 对象,使用 aws-cloudwatch-sink Kamelet 作为 Knative sink。

aws-cloudwatch-sink-binding.yaml

apiVersion: camel.apache.org/v1
kind: Pipe
metadata:
  name: aws-cloudwatch-sink-binding
spec:
  source:
    ref:
      kind: Channel
      apiVersion: messaging.knative.dev/v1
      name: mychannel
  sink:
    ref:
      kind: Kamelet
      apiVersion: camel.apache.org/v1
      name: aws-cloudwatch-sink
    properties:
      accessKey: "The Access Key"
      cw_namespace: "The Cloud Watch Namespace"
      region: "eu-west-1"
      secretKey: "The Secret Key"
Copy to Clipboard Toggle word wrap

4.5.3. Kafka Sink

您可以通过将它绑定到 Kafka 主题,使用 aws-cloudwatch-sink Kamelet 作为 Kafka sink。

aws-cloudwatch-sink-binding.yaml

apiVersion: camel.apache.org/v1
kind: Pipe
metadata:
  name: aws-cloudwatch-sink-binding
spec:
  source:
    ref:
      kind: KafkaTopic
      apiVersion: kafka.strimzi.io/v1beta1
      name: my-topic
  sink:
    ref:
      kind: Kamelet
      apiVersion: camel.apache.org/v1
      name: aws-cloudwatch-sink
    properties:
      accessKey: "The Access Key"
      cw_namespace: "The Cloud Watch Namespace"
      region: "eu-west-1"
      secretKey: "The Secret Key"
Copy to Clipboard Toggle word wrap

4.6. kamelets 源文件

https://github.com/jboss-fuse/camel-kamelets/blob/camel-kamelets-4.10.3-branch/kamelets/aws-cloudwatch-sink.kamelet.yaml

第 5 章 AWS DynamoDB Streams Source

接收来自 Amazon DynamoDB Streams 的事件。

5.1. 身份验证方法

在这个 Kamelet 中,您可以通过指定 useDefaultCredentialsProvider 选项并将其设置为 true 来避免使用显式静态凭证。

以下为 Default Credentials Provider 评估顺序如下:

  • Java 系统属性 - aws.accessKeyIdaws.secretKey.
  • 环境变量 - AWS_ACCESS_KEY_IDAWS_SECRET_ACCESS_KEY
  • AWS STS 的 Web Identity Token。
  • 共享凭证和配置文件。
  • Amazon ECS 容器凭据 - 如果设置了环境变量 AWS_CONTAINER_CREDENTIALS_RELATIVE_URI,则从 Amazon ECS 加载。
  • Amazon EC2 实例配置集凭据。

您还可以通过将 useProfileCredentialsProvider 选项设置为 true,将 profileCredentialsName 设置为配置集名称来使用 Profile Credentials Provider。

只能使用其中一个 access key/secret 密钥或默认凭证提供程序

如需更多信息,请参阅 AWS 凭证文档

5.2. 配置选项

下表总结了 aws-ddb-streams-source Kamelet 可用的选项:

Expand
属性名称描述类型默认示例

region *

AWS 区域

用于访问的 AWS 区域。

字符串

  

table *

DynamoDB 表的名称。

字符串

  

accessKey

访问密钥

从 AWS 获取的访问密钥。

字符串

  

delay

delay

下一次从数据库轮询前的毫秒数。

整数

500

 

overrideEndpoint

端点覆盖

选择这个选项来覆盖端点 URI。要使用这个选项,还必须为 uriEndpointOverride 选项提供 URI。

布尔值

False

 

profileCredentialsName

配置集凭证名称

如果使用配置集凭证供应商,此参数会设置配置集名称。

字符串

  

secretKey

机密密钥

从 AWS 获取的 secret 密钥。

字符串

  

sessionToken

会话令牌

当用户需要假定 IAM 角色时使用的 Amazon AWS Session Token。

字符串

  

streamIteratorType

流迭代器类型

定义 DynamoDB 流中开始获取记录的位置。有两个 enums,值可以是 FROM_LATEST 和 FROM_START 之一。请注意,使用 FROM_START 可能会导致流及时出现大量延迟。

字符串

FROM_LATEST

 

uriEndpointOverride

覆盖 Endpoint URI

覆盖端点 URI。要使用这个选项,还必须选择 overrideEndpoint 选项。

字符串

  

useDefaultCredentialsProvider

默认凭证提供程序

如果为 true,则 DynamoDB 客户端通过默认凭据提供程序加载凭据。如果为 false,它将使用基本的身份验证方法(access key 和 secret key)。

布尔值

False

 

useProfileCredentialsProvider

配置集凭证供应商

设置 DynamoDB 客户端是否应该预期通过配置文件凭据提供程序加载凭据。

布尔值

False

 

useSessionCredentials

会话凭证

设置 DynamoDB 客户端是否应该预期使用 Session Credentials。这在用户需要假设 IAM 角色在 DynamoDB 中执行操作时非常有用。

布尔值

False

 

* = 标记为星号的字段 是必需的

5.3. 依赖项

5.3.1. Quarkus 依赖项

<dependencies>
  <dependency>
    <groupId>org.apache.camel.kamelets</groupId>
    <artifactId>camel-kamelets-utils</artifactId>
    <version>4.8.5</version>
  </dependency>
  <dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifactId>camel-quarkus-aws2-ddb-streams</artifactId>
  </dependency>
  <dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifactId>camel-quarkus-gson</artifactId>
  </dependency>
  <dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifactId>camel-quarkus-kamelet</artifactId>
  </dependency>
</dependencies>
Copy to Clipboard Toggle word wrap

5.4. 使用方法

5.4.1. Camel JBang 用法

5.4.1.1. JBang 的先决条件
  • 安装 JBang
  • 您已执行以下命令:

    jbang app install camel@apache/camel
    Copy to Clipboard Toggle word wrap
5.4.1.2. 使用 JBang 运行路由

假设有一个名为 route.yaml 的文件,其中包含此内容:

- route:
    from:
      uri: "kamelet:timer-source"
      parameters:
        period: 10000
        message: 'test'
      steps:
        - to:
            uri: "kamelet:log-sink"
Copy to Clipboard Toggle word wrap

现在,您可以直接使用以下命令运行它。

camel run route.yaml
Copy to Clipboard Toggle word wrap

5.4.2. Knative Source

您可以通过将它绑定到 Knative 对象,使用 aws-ddb-streams-source Kamelet 作为 Knative 源。

aws-ddb-streams-source-binding.yaml

apiVersion: camel.apache.org/v1
kind: Pipe
metadata:
  name: aws-ddb-streams-source-binding
spec:
  source:
    ref:
      kind: Kamelet
      apiVersion: camel.apache.org/v1
      name: aws-ddb-streams-source
    properties:
      accessKey: "The Access Key"
      region: "eu-west-1"
      secretKey: "The Secret Key"
      table: "The Table"
  sink:
    ref:
      kind: Channel
      apiVersion: messaging.knative.dev/v1
      name: mychannel
Copy to Clipboard Toggle word wrap

5.4.3. Kafka 源

您可以通过将它绑定到 Kafka 主题,使用 aws-ddb-streams-source Kamelet 作为 Kafka 源。

aws-ddb-streams-source-binding.yaml

apiVersion: camel.apache.org/v1
kind: Pipe
metadata:
  name: aws-ddb-streams-source-binding
spec:
  source:
    ref:
      kind: Kamelet
      apiVersion: camel.apache.org/v1
      name: aws-ddb-streams-source
    properties:
      accessKey: "The Access Key"
      region: "eu-west-1"
      secretKey: "The Secret Key"
      table: "The Table"
  sink:
    ref:
      kind: KafkaTopic
      apiVersion: kafka.strimzi.io/v1beta1
      name: my-topic
Copy to Clipboard Toggle word wrap

5.5. kamelets 源文件

https://github.com/jboss-fuse/camel-kamelets/blob/camel-kamelets-4.10.3-branch/kamelets/aws-ddb-streams-source.kamelet.yaml

第 6 章 AWS Kinesis Firehose Sink

发送消息到 AWS Kinesis Firehose Stream。

6.1. 身份验证方法

在这个 Kamelet 中,您可以通过指定 useDefaultCredentialsProvider 选项并将其设置为 true 来避免使用显式静态凭证。

以下为 Default Credentials Provider 评估顺序如下:

  • Java 系统属性 - aws.accessKeyIdaws.secretKey.
  • 环境变量 - AWS_ACCESS_KEY_IDAWS_SECRET_ACCESS_KEY
  • AWS STS 的 Web Identity Token。
  • 共享凭证和配置文件。
  • Amazon ECS 容器凭据 - 如果设置了环境变量 AWS_CONTAINER_CREDENTIALS_RELATIVE_URI,则从 Amazon ECS 加载。
  • Amazon EC2 实例配置集凭据。

您还可以通过将 useProfileCredentialsProvider 选项设置为 true,将 profileCredentialsName 设置为配置集名称来使用 Profile Credentials Provider。

只能使用其中一个 access key/secret 密钥或默认凭证提供程序

如需更多信息,请参阅 AWS 凭证文档

6.2. 配置选项

下表总结了 aws-kinesis-firehose-sink Kamelet 可用的选项:

Expand
属性名称描述类型默认示例

region *

AWS 区域

用于访问的 AWS 区域。

字符串

  

streamName *

流名称

要发送到数据的流的名称。

字符串

  

accessKey

访问密钥

从 AWS 获取的访问密钥。

字符串

  

overrideEndpoint

端点覆盖

选择这个选项来覆盖端点 URI。要使用这个选项,还必须为 uriEndpointOverride 选项提供 URI。

布尔值

False

 

profileCredentialsName

配置集凭证名称

如果使用配置集凭证供应商,此参数会设置配置集名称。

字符串

  

secretKey

机密密钥

从 AWS 获取的 secret 密钥。

字符串

  

sessionToken

会话令牌

当用户需要假定 IAM 角色时使用的 Amazon AWS Session Token。

字符串

  

uriEndpointOverride

覆盖 Endpoint URI

覆盖端点 URI。要使用这个选项,还必须选择 overrideEndpoint 选项。

字符串

  

useDefaultCredentialsProvider

默认凭证提供程序

设置 Kinesis Firehose 客户端是否应该通过默认凭据提供商加载凭据,还是希望传递静态凭据。

布尔值

False

 

useProfileCredentialsProvider

配置集凭证供应商

设置 Kinesis Firehose 客户端是否应该预期通过配置集凭证提供程序加载凭据。

布尔值

False

 

useSessionCredentials

会话凭证

设置 Kinesis Firehose 客户端是否应该预期使用会话凭证。这在用户需要假设 IAM 角色在 Kinesis Firehose 中执行操作时非常有用。

布尔值

False

 

* = 标记为星号的字段 是必需的

6.3. 依赖项

6.3.1. Quarkus 依赖项

<dependencies>
  <dependency>
    <groupId>org.apache.camel.kamelets</groupId>
    <artifactId>camel-kamelets-utils</artifactId>
    <version>4.8.5</version>
  </dependency>
  <dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifactId>camel-quarkus-aws-kinesis-firehose</artifactId>
  </dependency>
  <dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifactId>camel-quarkus-aws2-kinesis</artifactId>
  </dependency>
  <dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifactId>camel-quarkus-kamelet</artifactId>
  </dependency>
</dependencies>
Copy to Clipboard Toggle word wrap

6.4. 使用方法

6.4.1. Camel JBang 用法

6.4.1.1. JBang 的先决条件
  • 安装 JBang
  • 您已执行以下命令:

    jbang app install camel@apache/camel
    Copy to Clipboard Toggle word wrap
6.4.1.2. 使用 JBang 运行路由

假设有一个名为 route.yaml 的文件,其中包含此内容:

- route:
    from:
      uri: "kamelet:timer-source"
      parameters:
        period: 10000
        message: 'test'
      steps:
        - to:
            uri: "kamelet:log-sink"
Copy to Clipboard Toggle word wrap

现在,您可以直接使用以下命令运行它。

camel run route.yaml
Copy to Clipboard Toggle word wrap

6.4.2. Knative Sink

您可以通过将它绑定到 Knative 对象来使用 aws-kinesis-firehose-sink Kamelet 作为 Knative sink。

aws-kinesis-firehose-sink-binding.yaml

apiVersion: camel.apache.org/v1
kind: Pipe
metadata:
  name: aws-kinesis-firehose-sink-binding
spec:
  source:
    ref:
      kind: Channel
      apiVersion: messaging.knative.dev/v1
      name: mychannel
  sink:
    ref:
      kind: Kamelet
      apiVersion: camel.apache.org/v1
      name: aws-kinesis-firehose-sink
    properties:
      accessKey: "The Access Key"
      region: "eu-west-1"
      secretKey: "The Secret Key"
      streamName: "The Stream name"
Copy to Clipboard Toggle word wrap

6.4.3. Kafka Sink

您可以通过将它绑定到 Kafka 主题,使用 aws-kinesis-firehose-sink Kamelet 作为 Kafka sink。

aws-kinesis-firehose-sink-binding.yaml

apiVersion: camel.apache.org/v1
kind: Pipe
metadata:
  name: aws-kinesis-firehose-sink-binding
spec:
  source:
    ref:
      kind: KafkaTopic
      apiVersion: kafka.strimzi.io/v1beta1
      name: my-topic
  sink:
    ref:
      kind: Kamelet
      apiVersion: camel.apache.org/v1
      name: aws-kinesis-firehose-sink
    properties:
      accessKey: "The Access Key"
      region: "eu-west-1"
      secretKey: "The Secret Key"
      streamName: "The Stream name"
Copy to Clipboard Toggle word wrap

6.5. kamelets 源文件

https://github.com/jboss-fuse/camel-kamelets/blob/camel-kamelets-4.10.3-branch/kamelets/aws-kinesis-firehose-sink.kamelet.yaml

第 7 章 AWS Kinesis Sink

将数据发送到 AWS Kinesis。

7.1. 身份验证方法

在这个 Kamelet 中,您可以通过指定 useDefaultCredentialsProvider 选项并将其设置为 true 来避免使用显式静态凭证。

以下为 Default Credentials Provider 评估顺序如下:

  • Java 系统属性 - aws.accessKeyIdaws.secretKey.
  • 环境变量 - AWS_ACCESS_KEY_IDAWS_SECRET_ACCESS_KEY
  • AWS STS 的 Web Identity Token。
  • 共享凭证和配置文件。
  • Amazon ECS 容器凭据 - 如果设置了环境变量 AWS_CONTAINER_CREDENTIALS_RELATIVE_URI,则从 Amazon ECS 加载。
  • Amazon EC2 实例配置集凭据。

您还可以通过将 useProfileCredentialsProvider 选项设置为 true,将 profileCredentialsName 设置为配置集名称来使用 Profile Credentials Provider。

只能使用其中一个 access key/secret 密钥或默认凭证提供程序

如需更多信息,请参阅 AWS 凭证文档

7.2. 可选标头

在标头中,您可以选择性地设置 file / ce-partition 属性来设置 Kinesis 分区密钥。

如果您没有在标头中设置属性,则 Kamelet 将交换 ID 用于分区键。

您还可以在标头中设置 序列号 / ce-sequencenumber 属性来指定 Sequence 号。

7.3. 配置选项

下表总结了 aws-kinesis-sink Kamelet 可用的选项:

Expand
属性名称描述类型默认示例

region *

AWS 区域

用于访问的 AWS 区域。

字符串

  

stream *

流名称

您要访问的 Kinesis 流。您指定的 Kinesis 流必须已经存在。

字符串

  

accessKey

访问密钥

从 AWS 获取的访问密钥。

字符串

  

overrideEndpoint

端点覆盖

选择这个选项来覆盖端点 URI。要使用这个选项,还必须为 uriEndpointOverride 选项提供 URI。

布尔值

False

 

profileCredentialsName

配置集凭证名称

如果使用配置集凭证供应商,此参数会设置配置集名称。

字符串

  

secretKey

机密密钥

从 AWS 获取的 secret 密钥。

字符串

  

sessionToken

会话令牌

当用户需要假定 IAM 角色时使用的 Amazon AWS Session Token。

字符串

  

uriEndpointOverride

覆盖 Endpoint URI

覆盖端点 URI。要使用这个选项,还必须选择 overrideEndpoint 选项。

字符串

  

useDefaultCredentialsProvider

默认凭证提供程序

如果为 true,则 Kinesis 客户端通过默认凭证供应商加载凭证。如果为 false,它将使用基本的身份验证方法(access key 和 secret key)。

布尔值

False

 

useProfileCredentialsProvider

配置集凭证供应商

设置 Kinesis 客户端是否应该预期通过配置集凭证供应商加载凭证。

布尔值

False

 

useSessionCredentials

会话凭证

设置 Kinesis 客户端是否应该预期使用 Session 凭证。这在用户需要假设 IAM 角色在 Kinesis 中执行操作时非常有用。

布尔值

False

 

* = 标记为星号的字段 是必需的

7.4. 依赖项

7.4.1. Quarkus 依赖项

<dependencies>
  <dependency>
    <groupId>org.apache.camel.kamelets</groupId>
    <artifactId>camel-kamelets-utils</artifactId>
    <version>4.8.5</version>
  </dependency>
  <dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifactId>camel-quarkus-aws-kinesis</artifactId>
  </dependency>
  <dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifactId>camel-quarkus-aws2-kinesis</artifactId>
  </dependency>
  <dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifactId>camel-quarkus-kamelet</artifactId>
  </dependency>
</dependencies>
Copy to Clipboard Toggle word wrap

7.5. 使用方法

7.5.1. Camel JBang 用法

7.5.1.1. JBang 的先决条件
  • 安装 JBang
  • 您已执行以下命令:

    jbang app install camel@apache/camel
    Copy to Clipboard Toggle word wrap
7.5.1.2. 使用 JBang 运行路由

假设有一个名为 route.yaml 的文件,其中包含此内容:

- route:
    from:
      uri: "kamelet:timer-source"
      parameters:
        period: 10000
        message: 'test'
      steps:
        - to:
            uri: "kamelet:log-sink"
Copy to Clipboard Toggle word wrap

现在,您可以直接使用以下命令运行它。

camel run route.yaml
Copy to Clipboard Toggle word wrap

7.5.2. Knative Sink

您可以通过将它绑定到 Knative 对象,使用 aws-kinesis-sink Kamelet 作为 Knative sink。

aws-kinesis-sink-binding.yaml

apiVersion: camel.apache.org/v1
kind: Pipe
metadata:
  name: aws-kinesis-sink-binding
spec:
  source:
    ref:
      kind: Channel
      apiVersion: messaging.knative.dev/v1
      name: mychannel
  sink:
    ref:
      kind: Kamelet
      apiVersion: camel.apache.org/v1
      name: aws-kinesis-sink
    properties:
      accessKey: "The Access Key"
      region: "eu-west-1"
      secretKey: "The Secret Key"
      stream: "The Stream Name"
Copy to Clipboard Toggle word wrap

7.5.3. Kafka Sink

您可以通过将它绑定到 Kafka 主题,使用 aws-kinesis-sink Kamelet 作为 Kafka sink。

aws-kinesis-sink-binding.yaml

apiVersion: camel.apache.org/v1
kind: Pipe
metadata:
  name: aws-kinesis-sink-binding
spec:
  source:
    ref:
      kind: KafkaTopic
      apiVersion: kafka.strimzi.io/v1beta1
      name: my-topic
  sink:
    ref:
      kind: Kamelet
      apiVersion: camel.apache.org/v1
      name: aws-kinesis-sink
    properties:
      accessKey: "The Access Key"
      region: "eu-west-1"
      secretKey: "The Secret Key"
      stream: "The Stream Name"
Copy to Clipboard Toggle word wrap

7.6. kamelets 源文件

https://github.com/jboss-fuse/camel-kamelets/blob/camel-kamelets-4.10.3-branch/kamelets/aws-kinesis-sink.kamelet.yaml

第 8 章 AWS Kinesis Source

从 AWS Kinesis 接收数据。

8.1. 身份验证方法

在这个 Kamelet 中,您可以通过指定 useDefaultCredentialsProvider 选项并将其设置为 true 来避免使用显式静态凭证。

以下为 Default Credentials Provider 评估顺序如下:

  • Java 系统属性 - aws.accessKeyIdaws.secretKey.
  • 环境变量 - AWS_ACCESS_KEY_IDAWS_SECRET_ACCESS_KEY
  • AWS STS 的 Web Identity Token。
  • 共享凭证和配置文件。
  • Amazon ECS 容器凭据 - 如果设置了环境变量 AWS_CONTAINER_CREDENTIALS_RELATIVE_URI,则从 Amazon ECS 加载。
  • Amazon EC2 实例配置集凭据。

您还可以通过将 useProfileCredentialsProvider 选项设置为 true,将 profileCredentialsName 设置为配置集名称来使用 Profile Credentials Provider。

只能使用其中一个 access key/secret 密钥或默认凭证提供程序

如需更多信息,请参阅 AWS 凭证文档

8.2. 普通消费者的使用示例

您可以直接使用流内容

- route:
    from:
      uri: "kamelet:aws-kinesis-source"
      parameters:
        useDefaultCredentialsProvider: true
        region: "eu-west-1"
        stream: "kamelets"
      steps:
        - to:
            uri: "kamelet:log-sink"
Copy to Clipboard Toggle word wrap

8.3. KCL Consumer 的使用示例

您可以使用 KCL 支持来使用流内容

- route:
    from:
      uri: "kamelet:aws-kinesis-source"
      parameters:
        stream: "kamelets"
        useDefaultCredentialsProvider: true
        region: "eu-west-1"
        asyncClient: true
        useKclConsumers: true
      steps:
      - to:
          uri: "kamelet:log-sink"
          parameters:
            showHeaders: true
Copy to Clipboard Toggle word wrap

启用 useKclConsumers 后,您不必直接处理分片迭代。所有功能都由 AWS Kinesis 客户端库和 KCL 层管理。

作为一端注意,您需要记住 KCL 使用者需要访问 AWS 的 DynamoDB 和 Cloudwatch 服务,因此它将在 hood 下创建客户端到这些服务,并使用它们。

8.4. 配置选项

下表总结了 aws-kinesis-source Kamelet 可用的选项:

Expand
属性名称描述类型默认示例

region *

AWS 区域

用于访问的 AWS 区域。

字符串

  

stream *

流名称

您要访问的 Kinesis 流。您指定的 Kinesis 流必须已经存在。

字符串

  

accessKey

访问密钥

从 AWS 获取的访问密钥。

字符串

  

asyncClient

async Client

如果我们希望 KinesisAsyncClient 实例设为 true。

布尔值

False

 

delay

delay

下一次轮询所选流前的毫秒数。

整数

500

 

kclDisableCloudwatchMetricsExport

KCL 禁用 Cloudwatch 指标导出

定义是否要使用 KCL Consumer,并禁用 CloudWatch Metrics Export

布尔值

False

 

overrideEndpoint

端点覆盖

选择这个选项来覆盖端点 URI。要使用这个选项,还必须为 uriEndpointOverride 选项提供 URI。

布尔值

False

 

profileCredentialsName

配置集凭证名称

如果使用配置集凭证供应商,此参数会设置配置集名称。

字符串

  

secretKey

机密密钥

从 AWS 获取的 secret 密钥。

字符串

  

sessionToken

会话令牌

当用户需要假定 IAM 角色时使用的 Amazon AWS Session Token。

字符串

  

uriEndpointOverride

覆盖 Endpoint URI

覆盖端点 URI。要使用这个选项,还必须选择 overrideEndpoint 选项。

字符串

  

useDefaultCredentialsProvider

默认凭证提供程序

如果为 true,则 Kinesis 客户端通过默认凭证供应商加载凭证。如果为 false,它将使用基本的身份验证方法(access key 和 secret key)。

布尔值

False

 

useKclConsumers

KCL Consumer

如果要把 KCL Consumer 设置为 true

布尔值

False

 

useProfileCredentialsProvider

配置集凭证供应商

设置 Kinesis 客户端是否应该预期通过配置集凭证供应商加载凭证。

布尔值

False

 

useSessionCredentials

会话凭证

设置 Kinesis 客户端是否应该预期使用 Session 凭证。这在用户需要假设 IAM 角色在 Kinesis 中执行操作时非常有用。

布尔值

False

 

* = 标记为星号的字段 是必需的

8.5. 依赖项

8.5.1. Quarkus 依赖项

<dependencies>
  <dependency>
    <groupId>org.apache.camel.kamelets</groupId>
    <artifactId>camel-kamelets-utils</artifactId>
    <version>4.8.5</version>
  </dependency>
  <dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifactId>camel-quarkus-aws-kinesis-source</artifactId>
  </dependency>
  <dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifactId>camel-quarkus-aws2-kinesis</artifactId>
  </dependency>
  <dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifactId>camel-quarkus-kamelet</artifactId>
  </dependency>
</dependencies>
Copy to Clipboard Toggle word wrap

8.6. 使用方法

8.6.1. Camel JBang 用法

8.6.1.1. JBang 的先决条件
  • 安装 JBang
  • 您已执行以下命令:

    jbang app install camel@apache/camel
    Copy to Clipboard Toggle word wrap
8.6.1.2. 使用 JBang 运行路由

假设有一个名为 route.yaml 的文件,其中包含此内容:

- route:
    from:
      uri: "kamelet:timer-source"
      parameters:
        period: 10000
        message: 'test'
      steps:
        - to:
            uri: "kamelet:log-sink"
Copy to Clipboard Toggle word wrap

现在,您可以直接使用以下命令运行它。

camel run route.yaml
Copy to Clipboard Toggle word wrap

8.6.2. Knative Source

您可以通过将 aws-kinesis-source Kamelet 绑定到 Knative 对象来使用 aws-kinesis-source Kamelet 作为 Knative 源。

aws-kinesis-source-binding.yaml

apiVersion: camel.apache.org/v1
kind: Pipe
metadata:
  name: aws-kinesis-source-binding
spec:
  source:
    ref:
      kind: Kamelet
      apiVersion: camel.apache.org/v1
      name: aws-kinesis-source
    properties:
      accessKey: "The Access Key"
      region: "eu-west-1"
      secretKey: "The Secret Key"
      stream: "The Stream Name"
  sink:
    ref:
      kind: Channel
      apiVersion: messaging.knative.dev/v1
      name: mychannel
Copy to Clipboard Toggle word wrap

8.6.3. Kafka 源

您可以通过将 aws-kinesis-source Kamelet 绑定到 Kafka 主题来将 aws-kinesis-source Kamelet 用作 Kafka 源。

aws-kinesis-source-binding.yaml

apiVersion: camel.apache.org/v1
kind: Pipe
metadata:
  name: aws-kinesis-source-binding
spec:
  source:
    ref:
      kind: Kamelet
      apiVersion: camel.apache.org/v1
      name: aws-kinesis-source
    properties:
      accessKey: "The Access Key"
      region: "eu-west-1"
      secretKey: "The Secret Key"
      stream: "The Stream Name"
  sink:
    ref:
      kind: KafkaTopic
      apiVersion: kafka.strimzi.io/v1beta1
      name: my-topic
Copy to Clipboard Toggle word wrap

8.7. kamelets 源文件

https://github.com/jboss-fuse/camel-kamelets/blob/camel-kamelets-4.10.3-branch/kamelets/aws-kinesis-source.kamelet.yaml

第 9 章 AWS Lambda Sink

将有效负载发送到 AWS Lambda 函数。

9.1. 身份验证方法

在这个 Kamelet 中,您可以通过指定 useDefaultCredentialsProvider 选项并将其设置为 true 来避免使用显式静态凭证。

以下为 Default Credentials Provider 评估顺序如下:

  • Java 系统属性 - aws.accessKeyIdaws.secretKey.
  • 环境变量 - AWS_ACCESS_KEY_IDAWS_SECRET_ACCESS_KEY
  • AWS STS 的 Web Identity Token。
  • 共享凭证和配置文件。
  • Amazon ECS 容器凭据 - 如果设置了环境变量 AWS_CONTAINER_CREDENTIALS_RELATIVE_URI,则从 Amazon ECS 加载。
  • Amazon EC2 实例配置集凭据。

您还可以通过将 useProfileCredentialsProvider 选项设置为 true,将 profileCredentialsName 设置为配置集名称来使用 Profile Credentials Provider。

只能使用其中一个 access key/secret 密钥或默认凭证提供程序

如需更多信息,请参阅 AWS 凭证文档

9.2. 配置选项

下表总结了 aws-lambda-sink Kamelet 可用的选项:

Expand
属性名称描述类型默认示例

function *

功能名称

Lambda Function 名称。

字符串

  

region *

AWS 区域

用于访问的 AWS 区域。

字符串

  

accessKey

访问密钥

从 AWS 获取的访问密钥。

字符串

  

profileCredentialsName

配置集凭证名称

如果使用配置集凭证供应商,此参数会设置配置集名称。

字符串

  

secretKey

机密密钥

从 AWS 获取的 secret 密钥。

字符串

  

sessionToken

会话令牌

当用户需要假定 IAM 角色时使用的 Amazon AWS Session Token。

字符串

  

useDefaultCredentialsProvider

默认凭证提供程序

如果为 true,则 Lambda 客户端通过默认凭证供应商加载凭证。如果为 false,它将使用基本的身份验证方法(access key 和 secret key)。

布尔值

False

 

useProfileCredentialsProvider

配置集凭证供应商

设置 Lambda 客户端是否应该预期通过配置集凭证供应商加载凭证。

布尔值

False

 

useSessionCredentials

会话凭证

设置 Lambda 客户端是否应该预期使用 Session 凭证。这在用户需要假设 IAM 角色在 Lambda 中执行操作时很有用。

布尔值

False

 

* = 标记为星号的字段 是必需的

9.3. 依赖项

9.3.1. Quarkus 依赖项

<dependencies>
  <dependency>
    <groupId>org.apache.camel.kamelets</groupId>
    <artifactId>camel-kamelets-utils</artifactId>
    <version>4.8.5</version>
  </dependency>
  <dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifactId>camel-quarkus-aws-lambda</artifactId>
  </dependency>
  <dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifactId>camel-quarkus-aws2-lambdan</artifactId>
  </dependency>
  <dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifactId>camel-quarkus-kamelet</artifactId>
  </dependency>
</dependencies>
Copy to Clipboard Toggle word wrap

9.4. 使用方法

9.4.1. Camel JBang 用法

9.4.1.1. JBang 的先决条件
  • 安装 JBang
  • 您已执行以下命令:

    jbang app install camel@apache/camel
    Copy to Clipboard Toggle word wrap
9.4.1.2. 使用 JBang 运行路由

假设有一个名为 route.yaml 的文件,其中包含此内容:

- route:
    from:
      uri: "kamelet:timer-source"
      parameters:
        period: 10000
        message: 'test'
      steps:
        - to:
            uri: "kamelet:log-sink"
Copy to Clipboard Toggle word wrap

现在,您可以直接使用以下命令运行它。

camel run route.yaml
Copy to Clipboard Toggle word wrap

9.4.2. Knative Sink

您可以通过将它绑定到 Knative 对象,使用 aws-lambda-sink Kamelet 作为 Knative sink。

aws-lambda-sink-binding.yaml

apiVersion: camel.apache.org/v1
kind: Pipe
metadata:
  name: aws-lambda-sink-binding
spec:
  source:
    ref:
      kind: Channel
      apiVersion: messaging.knative.dev/v1
      name: mychannel
  sink:
    ref:
      kind: Kamelet
      apiVersion: camel.apache.org/v1
      name: aws-lambda-sink
    properties:
      accessKey: "The Access Key"
      function: "The Function Name"
      region: "eu-west-1"
      secretKey: "The Secret Key"
Copy to Clipboard Toggle word wrap

9.4.3. Kafka Sink

您可以通过将 aws-lambda-sink Kamelet 绑定到 Kafka 主题来将 aws-lambda-sink Kamelet 用作 Kafka sink。

aws-lambda-sink-binding.yaml

apiVersion: camel.apache.org/v1
kind: Pipe
metadata:
  name: aws-lambda-sink-binding
spec:
  source:
    ref:
      kind: KafkaTopic
      apiVersion: kafka.strimzi.io/v1beta1
      name: my-topic
  sink:
    ref:
      kind: Kamelet
      apiVersion: camel.apache.org/v1
      name: aws-lambda-sink
    properties:
      accessKey: "The Access Key"
      function: "The Function Name"
      region: "eu-west-1"
      secretKey: "The Secret Key"
Copy to Clipboard Toggle word wrap

9.5. kamelets 源文件

https://github.com/jboss-fuse/camel-kamelets/blob/camel-kamelets-4.10.3-branch/kamelets/aws-lambda-sink.kamelet.yaml

第 10 章 AWS Redshift Sink

将数据发送到 AWS Redshift 数据库。

10.1. 身份验证方法

在这个 Kamelet 中,您可以通过指定 useDefaultCredentialsProvider 选项并将其设置为 true 来避免使用显式静态凭证。

以下为 Default Credentials Provider 评估顺序如下:

  • Java 系统属性 - aws.accessKeyIdaws.secretKey.
  • 环境变量 - AWS_ACCESS_KEY_IDAWS_SECRET_ACCESS_KEY
  • AWS STS 的 Web Identity Token。
  • 共享凭证和配置文件。
  • Amazon ECS 容器凭据 - 如果设置了环境变量 AWS_CONTAINER_CREDENTIALS_RELATIVE_URI,则从 Amazon ECS 加载。
  • Amazon EC2 实例配置集凭据。

您还可以通过将 useProfileCredentialsProvider 选项设置为 true,将 profileCredentialsName 设置为配置集名称来使用 Profile Credentials Provider。

只能使用其中一个 access key/secret 密钥或默认凭证提供程序

如需更多信息,请参阅 AWS 凭证文档

10.2. sink 的预期数据格式

Kamelet 需要 JSON 格式的正文。使用 key:value 对来映射 JSON 字段和参数。例如,以下是一个查询:

'INSERT INTO accounts (username,city) VALUES (:#username,:#city)'
Copy to Clipboard Toggle word wrap

以下是示例查询的输入示例:

'{ "username":"oscerd", "city":"Rome"}'
Copy to Clipboard Toggle word wrap

10.3. 配置选项

下表总结了 aws-redshift-sink Kamelet 可用的选项:

Expand
属性名称描述类型默认示例

databaseName *

数据库名称

AWS Red HatShift 数据库的名称。

字符串

  

password *

密码

访问安全 AWS Redshift 数据库的密码。

字符串

  

query *

查询

针对 AWS Redshift 数据库执行的查询。

字符串

 

INSERT INTO 帐户(username,city) VALUES (:"username,:#city)

serverName *

服务器名称

数据源的服务器名称。

字符串

 

localhost

username *

用户名

用于访问安全 AWS Redshift 数据库的用户名。

字符串

  

serverPort

服务器端口

AWS Red HatShi 数据源的服务器端口。

字符串

5439

 

* = 标记为星号的字段 是必需的

10.4. 依赖项

10.4.1. Quarkus 依赖项

<dependencies>
  <dependency>
    <groupId>org.apache.camel.kamelets</groupId>
    <artifactId>camel-kamelets-utils</artifactId>
    <version>4.8.5</version>
  </dependency>
  <dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifactId>camel-quarkus-aws-redshift</artifactId>
  </dependency>
  <dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifactId>camel-quarkus-jackson</artifactId>
  </dependency>
  <dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifactId>camel-quarkus-kamelet</artifactId>
  </dependency>
  <dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifactId>camel-quarkus-sql</artifactId>
  </dependency>
</dependencies>
Copy to Clipboard Toggle word wrap

10.5. 使用方法

10.5.1. Camel JBang 用法

10.5.1.1. JBang 的先决条件
  • 安装 JBang
  • 您已执行以下命令:

    jbang app install camel@apache/camel
    Copy to Clipboard Toggle word wrap
10.5.1.2. 使用 JBang 运行路由

假设有一个名为 route.yaml 的文件,其中包含此内容:

- route:
    from:
      uri: "kamelet:timer-source"
      parameters:
        period: 10000
        message: 'test'
      steps:
        - to:
            uri: "kamelet:log-sink"
Copy to Clipboard Toggle word wrap

现在,您可以直接使用以下命令运行它。

camel run route.yaml
Copy to Clipboard Toggle word wrap

10.5.2. Knative Sink

您可以通过将它绑定到 Knative 对象,使用 aws-redshift-sink Kamelet 作为 Knative sink。

aws-redshift-sink-binding.yaml

apiVersion: camel.apache.org/v1
kind: Pipe
metadata:
  name: aws-redshift-sink-binding
spec:
  source:
    ref:
      kind: Channel
      apiVersion: messaging.knative.dev/v1
      name: mychannel
  sink:
    ref:
      kind: Kamelet
      apiVersion: camel.apache.org/v1
      name: aws-redshift-sink
    properties:
      databaseName: "The Database Name"
      password: "The Password"
      query: "INSERT INTO accounts (username,city) VALUES (:#username,:#city)"
      serverName: "localhost"
      username: "The Username"
Copy to Clipboard Toggle word wrap

10.5.3. Kafka Sink

您可以通过将它绑定到 Kafka 主题,使用 aws-redshift-sink Kamelet 作为 Kafka sink。

aws-redshift-sink-binding.yaml

apiVersion: camel.apache.org/v1
kind: Pipe
metadata:
  name: aws-redshift-sink-binding
spec:
  source:
    ref:
      kind: KafkaTopic
      apiVersion: kafka.strimzi.io/v1beta1
      name: my-topic
  sink:
    ref:
      kind: Kamelet
      apiVersion: camel.apache.org/v1
      name: aws-redshift-sink
    properties:
      databaseName: "The Database Name"
      password: "The Password"
      query: "INSERT INTO accounts (username,city) VALUES (:#username,:#city)"
      serverName: "localhost"
      username: "The Username"
Copy to Clipboard Toggle word wrap

10.6. kamelets 源文件

https://github.com/jboss-fuse/camel-kamelets/blob/camel-kamelets-4.10.3-branch/kamelets/aws-redshift-sink.kamelet.yaml

第 11 章 AWS SNS Sink

发送消息到 Amazon Simple Notification Service (SNS)主题。

11.1. 身份验证方法

在这个 Kamelet 中,您可以通过指定 useDefaultCredentialsProvider 选项并将其设置为 true 来避免使用显式静态凭证。

以下为 Default Credentials Provider 评估顺序如下:

  • Java 系统属性 - aws.accessKeyIdaws.secretKey.
  • 环境变量 - AWS_ACCESS_KEY_IDAWS_SECRET_ACCESS_KEY
  • AWS STS 的 Web Identity Token。
  • 共享凭证和配置文件。
  • Amazon ECS 容器凭据 - 如果设置了环境变量 AWS_CONTAINER_CREDENTIALS_RELATIVE_URI,则从 Amazon ECS 加载。
  • Amazon EC2 实例配置集凭据。

您还可以通过将 useProfileCredentialsProvider 选项设置为 true,将 profileCredentialsName 设置为配置集名称来使用 Profile Credentials Provider。

只能使用其中一个 access key/secret 密钥或默认凭证提供程序

如需更多信息,请参阅 AWS 凭证文档

11.2. 可选标头

在 Kamelet 中,您可以选择性地设置以下标头:

  • subject / ce-subject: 消息主题

11.3. 配置选项

下表总结了 aws-sns-sink Kamelet 可用的选项:

Expand
属性名称描述类型默认示例

region *

AWS 区域

用于访问的 AWS 区域。

字符串

  

topicNameOrArn *

主题名称

SNS 主题名称或 Amazon 资源名称(ARN)。

字符串

  

accessKey

访问密钥

从 AWS 获取的访问密钥。

字符串

  

autoCreateTopic

autocreate Topic

设置 SNS 主题的自动创建。

布尔值

False

 

overrideEndpoint

端点覆盖

选择这个选项来覆盖端点 URI。要使用这个选项,还必须为 uriEndpointOverride 选项提供 URI。

布尔值

False

 

profileCredentialsName

配置集凭证名称

如果使用配置集凭证供应商,此参数会设置配置集名称。

字符串

  

secretKey

机密密钥

从 AWS 获取的 secret 密钥。

字符串

  

sessionToken

会话令牌

当用户需要假定 IAM 角色时使用的 Amazon AWS Session Token。

字符串

  

uriEndpointOverride

覆盖 Endpoint URI

覆盖端点 URI。要使用这个选项,还必须选择 overrideEndpoint 选项。

字符串

  

useDefaultCredentialsProvider

默认凭证提供程序

如果为 true,则 SNS 客户端通过默认凭证供应商加载凭证。如果为 false,它将使用基本的身份验证方法(access key 和 secret key)。

布尔值

False

 

useProfileCredentialsProvider

配置集凭证供应商

设置 SNS 客户端是否应该预期通过配置集凭证提供程序加载凭证。

布尔值

False

 

useSessionCredentials

会话凭证

设置 SNS 客户端是否应该预期使用 Session 凭证。这在用户需要假设 IAM 角色在 SNS 中执行操作时非常有用。

布尔值

False

 

* = 标记为星号的字段 是必需的

11.4. 依赖项

11.4.1. Quarkus 依赖项

<dependencies>
  <dependency>
    <groupId>org.apache.camel.kamelets</groupId>
    <artifactId>camel-kamelets-utils</artifactId>
    <version>4.8.5</version>
  </dependency>
  <dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifactId>camel-quarkus-aws-sns</artifactId>
  </dependency>
  <dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifactId>camel-quarkus-aws2-sns</artifactId>
  </dependency>
  <dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifactId>camel-quarkus-kamelet</artifactId>
  </dependency>
</dependencies>
Copy to Clipboard Toggle word wrap

11.5. 使用方法

11.5.1. Camel JBang 用法

11.5.1.1. JBang 的先决条件
  • 安装 JBang
  • 您已执行以下命令:

    jbang app install camel@apache/camel
    Copy to Clipboard Toggle word wrap
11.5.1.2. 使用 JBang 运行路由

假设有一个名为 route.yaml 的文件,其中包含此内容:

- route:
    from:
      uri: "kamelet:timer-source"
      parameters:
        period: 10000
        message: 'test'
      steps:
        - to:
            uri: "kamelet:log-sink"
Copy to Clipboard Toggle word wrap

现在,您可以直接使用以下命令运行它。

camel run route.yaml
Copy to Clipboard Toggle word wrap

11.5.2. Knative Sink

您可以通过将它绑定到 Knative 对象,使用 aws-sns-sink Kamelet 作为 Knative sink。

aws-sns-sink-binding.yaml

apiVersion: camel.apache.org/v1
kind: Pipe
metadata:
  name: aws-sns-sink-binding
spec:
  source:
    ref:
      kind: Channel
      apiVersion: messaging.knative.dev/v1
      name: mychannel
  sink:
    ref:
      kind: Kamelet
      apiVersion: camel.apache.org/v1
      name: aws-sns-sink
    properties:
      accessKey: "The Access Key"
      region: "eu-west-1"
      secretKey: "The Secret Key"
      topicNameOrArn: "The Topic Name"
Copy to Clipboard Toggle word wrap

11.5.3. Kafka Sink

您可以通过将它绑定到 Kafka 主题,使用 aws-sns-sink Kamelet 作为 Kafka sink。

aws-sns-sink-binding.yaml

apiVersion: camel.apache.org/v1
kind: Pipe
metadata:
  name: aws-sns-sink-binding
spec:
  source:
    ref:
      kind: KafkaTopic
      apiVersion: kafka.strimzi.io/v1beta1
      name: my-topic
  sink:
    ref:
      kind: Kamelet
      apiVersion: camel.apache.org/v1
      name: aws-sns-sink
    properties:
      accessKey: "The Access Key"
      region: "eu-west-1"
      secretKey: "The Secret Key"
      topicNameOrArn: "The Topic Name"
Copy to Clipboard Toggle word wrap

11.6. kamelets 源文件

https://github.com/jboss-fuse/camel-kamelets/blob/camel-kamelets-4.10.3-branch/kamelets/aws-sns-sink.kamelet.yaml

第 12 章 AWS SQS Sink

发送消息到 Amazon Simple Queue Service (SQS)队列。

12.1. 身份验证方法

在这个 Kamelet 中,您可以通过指定 useDefaultCredentialsProvider 选项并将其设置为 true 来避免使用显式静态凭证。

以下为 Default Credentials Provider 评估顺序如下:

  • Java 系统属性 - aws.accessKeyIdaws.secretKey.
  • 环境变量 - AWS_ACCESS_KEY_IDAWS_SECRET_ACCESS_KEY
  • AWS STS 的 Web Identity Token。
  • 共享凭证和配置文件。
  • Amazon ECS 容器凭据 - 如果设置了环境变量 AWS_CONTAINER_CREDENTIALS_RELATIVE_URI,则从 Amazon ECS 加载。
  • Amazon EC2 实例配置集凭据。

您还可以通过将 useProfileCredentialsProvider 选项设置为 true,将 profileCredentialsName 设置为配置集名称来使用 Profile Credentials Provider。

只能使用其中一个 access key/secret 密钥或默认凭证提供程序

如需更多信息,请参阅 AWS 凭证文档

12.2. 配置选项

下表总结了 aws-sqs-sink Kamelet 可用的选项:

Expand
属性名称描述类型默认示例

queueNameOrArn *

队列名称

SQS Queue name 或 Amazon Resource Name (ARN)。

字符串

  

region *

AWS 区域

用于访问的 AWS 区域。

字符串

  

accessKey

访问密钥

从 AWS 获取的访问密钥。

字符串

  

amazonAWSHost

AWS 主机

Amazon AWS 云的主机名。

字符串

amazonaws.com

 

autoCreateQueue

autocreate Queue

自动创建 SQS 队列。

布尔值

False

 

overrideEndpoint

端点覆盖

选择这个选项来覆盖端点 URI。要使用这个选项,还必须为 uriEndpointOverride 选项提供 URI。

布尔值

False

 

profileCredentialsName

配置集凭证名称

如果使用配置集凭证供应商,此参数会设置配置集名称。

字符串

  

protocol

协议

用于与 SQS 通信的底层协议。

字符串

https

HTTP 或 https

secretKey

机密密钥

从 AWS 获取的 secret 密钥。

字符串

  

sessionToken

会话令牌

当用户需要假定 IAM 角色时使用的 Amazon AWS Session Token。

字符串

  

uriEndpointOverride

覆盖 Endpoint URI

覆盖端点 URI。要使用这个选项,还必须选择 overrideEndpoint 选项。

字符串

  

useDefaultCredentialsProvider

默认凭证提供程序

如果为 true,SQS 客户端通过默认凭证供应商加载凭证。如果为 false,它将使用基本的身份验证方法(access key 和 secret key)。

布尔值

False

 

useProfileCredentialsProvider

配置集凭证供应商

设置 SQS 客户端是否应该预期通过配置集凭证提供程序加载凭据。

布尔值

False

 

useSessionCredentials

会话凭证

设置 SQS 客户端是否应该预期使用会话凭证。这在用户需要假设 IAM 角色在 SQS 中执行操作时非常有用。

布尔值

False

 

* = 标记为星号的字段 是必需的

12.3. 依赖项

12.3.1. Quarkus 依赖项

<dependencies>
  <dependency>
    <groupId>org.apache.camel.kamelets</groupId>
    <artifactId>camel-kamelets-utils</artifactId>
    <version>4.8.5</version>
  </dependency>
  <dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifactId>camel-quarkus-aws-sqs</artifactId>
  </dependency>
  <dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifactId>camel-quarkus-aws2-sqs</artifactId>
  </dependency>
  <dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifactId>camel-quarkus-kamelet</artifactId>
  </dependency>
</dependencies>
Copy to Clipboard Toggle word wrap

12.4. 使用方法

12.4.1. Camel JBang 用法

12.4.1.1. JBang 的先决条件
  • 安装 JBang
  • 您已执行以下命令:

    jbang app install camel@apache/camel
    Copy to Clipboard Toggle word wrap
12.4.1.2. 使用 JBang 运行路由

假设有一个名为 route.yaml 的文件,其中包含此内容:

- route:
    from:
      uri: "kamelet:timer-source"
      parameters:
        period: 10000
        message: 'test'
      steps:
        - to:
            uri: "kamelet:log-sink"
Copy to Clipboard Toggle word wrap

现在,您可以直接使用以下命令运行它。

camel run route.yaml
Copy to Clipboard Toggle word wrap

12.4.2. Knative Sink

您可以通过将它绑定到 Knative 对象来使用 aws-sqs-sink Kamelet 作为 Knative sink。

aws-sqs-sink-binding.yaml

apiVersion: camel.apache.org/v1
kind: Pipe
metadata:
  name: aws-sqs-sink-binding
spec:
  source:
    ref:
      kind: Channel
      apiVersion: messaging.knative.dev/v1
      name: mychannel
  sink:
    ref:
      kind: Kamelet
      apiVersion: camel.apache.org/v1
      name: aws-sqs-sink
    properties:
      accessKey: "The Access Key"
      queueNameOrArn: "The Queue Name"
      region: "eu-west-1"
      secretKey: "The Secret Key"
Copy to Clipboard Toggle word wrap

12.4.3. Kafka Sink

您可以通过将它绑定到 Kafka 主题,使用 aws-sqs-sink Kamelet 作为 Kafka sink。

aws-sqs-sink-binding.yaml

apiVersion: camel.apache.org/v1
kind: Pipe
metadata:
  name: aws-sqs-sink-binding
spec:
  source:
    ref:
      kind: KafkaTopic
      apiVersion: kafka.strimzi.io/v1beta1
      name: my-topic
  sink:
    ref:
      kind: Kamelet
      apiVersion: camel.apache.org/v1
      name: aws-sqs-sink
    properties:
      accessKey: "The Access Key"
      queueNameOrArn: "The Queue Name"
      region: "eu-west-1"
      secretKey: "The Secret Key"
Copy to Clipboard Toggle word wrap

12.5. kamelets 源文件

https://github.com/jboss-fuse/camel-kamelets/blob/camel-kamelets-4.10.3-branch/kamelets/aws-sqs-sink.kamelet.yaml

第 13 章 AWS SQS 源

接收来自 AWS SQS 的数据。

13.1. 身份验证方法

在这个 Kamelet 中,您可以通过指定 useDefaultCredentialsProvider 选项并将其设置为 true 来避免使用显式静态凭证。

以下为 Default Credentials Provider 评估顺序如下:

  • Java 系统属性 - aws.accessKeyIdaws.secretKey.
  • 环境变量 - AWS_ACCESS_KEY_IDAWS_SECRET_ACCESS_KEY
  • AWS STS 的 Web Identity Token。
  • 共享凭证和配置文件。
  • Amazon ECS 容器凭据 - 如果设置了环境变量 AWS_CONTAINER_CREDENTIALS_RELATIVE_URI,则从 Amazon ECS 加载。
  • Amazon EC2 实例配置集凭据。

您还可以通过将 useProfileCredentialsProvider 选项设置为 true,将 profileCredentialsName 设置为配置集名称来使用 Profile Credentials Provider。

只能使用其中一个 access key/secret 密钥或默认凭证提供程序

如需更多信息,请参阅 AWS 凭证文档

13.2. 配置选项

下表总结了 aws-sqs-source Kamelet 可用的选项:

Expand
属性名称描述类型默认示例

queueNameOrArn *

队列名称

SQS Queue Name 或 ARN。

字符串

  

region *

AWS 区域

用于访问的 AWS 区域。

字符串

  

accessKey

访问密钥

从 AWS 获取的访问密钥。

字符串

  

amazonAWSHost

AWS 主机

Amazon AWS 云的主机名。

字符串

amazonaws.com

 

autoCreateQueue

autocreate Queue

设置 SQS 队列的自动创建.

布尔值

False

 

delay

delay

下一次轮询所选流前的毫秒数。

整数

500

 

deleteAfterRead

自动删除消息

在消耗消息后删除它们。

布尔值

True

 

greedy

greedy Scheduler

如果启用了 greedy,如果上一个运行轮询 1 或更多消息,则轮询将立即发生。

布尔值

False

 

maxMessagesPerPoll

每个 Poll 的最大消息

要返回的最大消息数。Amazon SQS 从不返回超过这个值的信息(以什么方式,可能会返回较少的消息)。有效值 1 到 10。默认 1.

整数

1

 

overrideEndpoint

端点覆盖

选择这个选项来覆盖端点 URI。要使用这个选项,还必须为 uriEndpointOverride 选项提供 URI。

布尔值

False

 

profileCredentialsName

配置集凭证名称

如果使用配置集凭证供应商,此参数会设置配置集名称。

字符串

  

protocol

协议

用于与 SQS 通信的底层协议。

字符串

https

HTTP 或 https

queueURL

队列 URL

完整的 SQS Queue URL (如果使用 KEDA,则必需)。

字符串

  

secretKey

机密密钥

从 AWS 获取的 secret 密钥。

字符串

  

sessionToken

会话令牌

当用户需要假定 IAM 角色时使用的 Amazon AWS Session Token。

字符串

  

uriEndpointOverride

覆盖 Endpoint URI

覆盖端点 URI。要使用这个选项,还必须选择 overrideEndpoint 选项。

字符串

  

useDefaultCredentialsProvider

默认凭证提供程序

如果为 true,SQS 客户端通过默认凭证供应商加载凭证。如果为 false,它将使用基本的身份验证方法(access key 和 secret key)。

布尔值

False

 

useProfileCredentialsProvider

配置集凭证供应商

设置 SQS 客户端是否应该预期通过配置集凭证提供程序加载凭据。

布尔值

False

 

useSessionCredentials

会话凭证

设置 SQS 客户端是否应该预期使用会话凭证。这在用户需要假设 IAM 角色在 SQS 中执行操作时非常有用。

布尔值

False

 

visibilityTimeout

可见性超时

在由 ReceiveMessage 请求检索后,接收的消息从后续检索请求隐藏的持续时间(以秒为单位)。

整数

  

waitTimeSeconds

wait Time Seconds

调用在返回前等待消息到达队列的持续时间(以秒为单位)。如果有可用消息,调用会返回比 WaitTimeSeconds 更早。如果没有可用的消息并且等待时间过期,则调用不会返回消息列表。

整数

  

* = 标记为星号的字段 是必需的

13.3. 依赖项

13.3.1. Quarkus 依赖项

<dependencies>
  <dependency>
    <groupId>org.apache.camel.kamelets</groupId>
    <artifactId>camel-kamelets-utils</artifactId>
    <version>4.8.5</version>
  </dependency>
  <dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifactId>camel-quarkus-aws-sqs-source</artifactId>
  </dependency>
  <dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifactId>camel-quarkus-aws2-sqs</artifactId>
  </dependency>
  <dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifactId>camel-quarkus-kamelet</artifactId>
  </dependency>
</dependencies>
Copy to Clipboard Toggle word wrap

13.4. 使用方法

13.4.1. Camel JBang 用法

13.4.1.1. JBang 的先决条件
  • 安装 JBang
  • 您已执行以下命令:

    jbang app install camel@apache/camel
    Copy to Clipboard Toggle word wrap
13.4.1.2. 使用 JBang 运行路由

假设有一个名为 route.yaml 的文件,其中包含此内容:

- route:
    from:
      uri: "kamelet:timer-source"
      parameters:
        period: 10000
        message: 'test'
      steps:
        - to:
            uri: "kamelet:log-sink"
Copy to Clipboard Toggle word wrap

现在,您可以直接使用以下命令运行它。

camel run route.yaml
Copy to Clipboard Toggle word wrap

13.4.2. Knative Source

您可以通过将它绑定到 Knative 对象来使用 aws-sqs-source Kamelet 作为 Knative 源。

aws-sqs-source-binding.yaml

apiVersion: camel.apache.org/v1
kind: Pipe
metadata:
  name: aws-sqs-source-binding
spec:
  source:
    ref:
      kind: Kamelet
      apiVersion: camel.apache.org/v1
      name: aws-sqs-source
    properties:
      accessKey: "The Access Key"
      queueNameOrArn: "The Queue Name"
      region: "eu-west-1"
      secretKey: "The Secret Key"
  sink:
    ref:
      kind: Channel
      apiVersion: messaging.knative.dev/v1
      name: mychannel
Copy to Clipboard Toggle word wrap

13.4.3. Kafka 源

您可以通过将 aws-sqs-source Kamelet 绑定到 Kafka 主题来将 aws-sqs-source Kamelet 用作 Kafka 源。

aws-sqs-source-binding.yaml

apiVersion: camel.apache.org/v1
kind: Pipe
metadata:
  name: aws-sqs-source-binding
spec:
  source:
    ref:
      kind: Kamelet
      apiVersion: camel.apache.org/v1
      name: aws-sqs-source
    properties:
      accessKey: "The Access Key"
      queueNameOrArn: "The Queue Name"
      region: "eu-west-1"
      secretKey: "The Secret Key"
  sink:
    ref:
      kind: KafkaTopic
      apiVersion: kafka.strimzi.io/v1beta1
      name: my-topic
Copy to Clipboard Toggle word wrap

13.5. kamelets 源文件

https://github.com/jboss-fuse/camel-kamelets/blob/camel-kamelets-4.10.3-branch/kamelets/aws-sqs-source.kamelet.yaml

第 14 章 AWS SQS FIFO Sink

发送消息到 AWS SQS FIFO Queue。

14.1. 身份验证方法

在这个 Kamelet 中,您可以通过指定 useDefaultCredentialsProvider 选项并将其设置为 true 来避免使用显式静态凭证。

以下为 Default Credentials Provider 评估顺序如下:

  • Java 系统属性 - aws.accessKeyIdaws.secretKey.
  • 环境变量 - AWS_ACCESS_KEY_IDAWS_SECRET_ACCESS_KEY
  • AWS STS 的 Web Identity Token。
  • 共享凭证和配置文件。
  • Amazon ECS 容器凭据 - 如果设置了环境变量 AWS_CONTAINER_CREDENTIALS_RELATIVE_URI,则从 Amazon ECS 加载。
  • Amazon EC2 实例配置集凭据。

您还可以通过将 useProfileCredentialsProvider 选项设置为 true,将 profileCredentialsName 设置为配置集名称来使用 Profile Credentials Provider。

只能使用其中一个 access key/secret 密钥或默认凭证提供程序

如需更多信息,请参阅 AWS 凭证文档

14.2. 配置选项

下表总结了 aws-sqs-fifo-sink Kamelet 可用的选项:

Expand
属性名称描述类型默认示例

queueNameOrArn *

队列名称

SQS Queue name 或 ARN

字符串

  

region *

AWS 区域

用于访问的 AWS 区域。

字符串

  

accessKey

访问密钥

从 AWS 获取的访问密钥。

字符串

  

amazonAWSHost

AWS 主机

Amazon AWS 云的主机名。

字符串

amazonaws.com

 

autoCreateQueue

autocreate Queue

设置 SQS 队列的自动创建.

布尔值

False

 

contentBasedDeduplication

基于内容的重复数据删除(Deduplication)

使用基于内容的重复数据删除(应首先在 SQS FIFO 队列中启用)

布尔值

False

 

overrideEndpoint

端点覆盖

选择这个选项来覆盖端点 URI。要使用这个选项,还必须为 uriEndpointOverride 选项提供 URI。

布尔值

False

 

profileCredentialsName

配置集凭证名称

如果使用配置集凭证供应商,此参数会设置配置集名称。

字符串

  

protocol

协议

用于与 SQS 通信的底层协议

字符串

https

HTTP 或 https

secretKey

机密密钥

从 AWS 获取的 secret 密钥。

字符串

  

sessionToken

会话令牌

当用户需要假定 IAM 角色时使用的 Amazon AWS Session Token。

字符串

  

uriEndpointOverride

覆盖 Endpoint URI

覆盖端点 URI。要使用这个选项,还必须选择 overrideEndpoint 选项。

字符串

  

useDefaultCredentialsProvider

默认凭证提供程序

设置 SQS 客户端是否应该预期通过默认凭据提供程序加载凭据,或希望传递静态凭据。

布尔值

False

 

useProfileCredentialsProvider

配置集凭证供应商

设置 SQS 客户端是否应该预期通过配置集凭证提供程序加载凭据。

布尔值

False

 

useSessionCredentials

会话凭证

设置 SQS 客户端是否应该预期使用会话凭证。这在用户需要假设 IAM 角色在 SQS 中执行操作时非常有用。

布尔值

False

 

* = 标记为星号的字段 是必需的

14.3. 依赖项

14.3.1. Quarkus 依赖项

<dependencies>
  <dependency>
    <groupId>org.apache.camel.kamelets</groupId>
    <artifactId>camel-kamelets-utils</artifactId>
    <version>4.8.5</version>
  </dependency>
  <dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifactId>camel-quarkus-aws-sqs-fifo</artifactId>
  </dependency>
  <dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifactId>camel-quarkus-aws2-sqs</artifactId>
  </dependency>
  <dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifactId>camel-quarkus-kamelet</artifactId>
  </dependency>
</dependencies>
Copy to Clipboard Toggle word wrap

14.4. 使用方法

14.4.1. Camel JBang 用法

14.4.1.1. JBang 的先决条件
  • 安装 JBang
  • 您已执行以下命令:

    jbang app install camel@apache/camel
    Copy to Clipboard Toggle word wrap
14.4.1.2. 使用 JBang 运行路由

假设有一个名为 route.yaml 的文件,其中包含此内容:

- route:
    from:
      uri: "kamelet:timer-source"
      parameters:
        period: 10000
        message: 'test'
      steps:
        - to:
            uri: "kamelet:log-sink"
Copy to Clipboard Toggle word wrap

现在,您可以直接使用以下命令运行它。

camel run route.yaml
Copy to Clipboard Toggle word wrap

14.4.2. Knative Sink

您可以通过将它绑定到 Knative 对象,使用 aws-sqs-fifo-sink Kamelet 作为 Knative sink。

aws-sqs-fifo-sink-binding.yaml

apiVersion: camel.apache.org/v1
kind: Pipe
metadata:
  name: aws-sqs-fifo-sink-binding
spec:
  source:
    ref:
      kind: Channel
      apiVersion: messaging.knative.dev/v1
      name: mychannel
  sink:
    ref:
      kind: Kamelet
      apiVersion: camel.apache.org/v1
      name: aws-sqs-fifo-sink
    properties:
      accessKey: "The Access Key"
      queueNameOrArn: "The Queue Name"
      region: "eu-west-1"
      secretKey: "The Secret Key"
Copy to Clipboard Toggle word wrap

14.4.3. Kafka Sink

您可以通过将它绑定到 Kafka 主题,使用 aws-sqs-fifo-sink Kamelet 作为 Kafka sink。

aws-sqs-fifo-sink-binding.yaml

apiVersion: camel.apache.org/v1
kind: Pipe
metadata:
  name: aws-sqs-fifo-sink-binding
spec:
  source:
    ref:
      kind: KafkaTopic
      apiVersion: kafka.strimzi.io/v1beta1
      name: my-topic
  sink:
    ref:
      kind: Kamelet
      apiVersion: camel.apache.org/v1
      name: aws-sqs-fifo-sink
    properties:
      accessKey: "The Access Key"
      queueNameOrArn: "The Queue Name"
      region: "eu-west-1"
      secretKey: "The Secret Key"
Copy to Clipboard Toggle word wrap

14.5. kamelets 源文件

https://github.com/jboss-fuse/camel-kamelets/blob/camel-kamelets-4.10.3-branch/kamelets/aws-sqs-fifo-sink.kamelet.yaml

第 15 章 AWS S3 Sink

将数据上传到 Amazon S3 Bucket。

15.1. 身份验证方法

在这个 Kamelet 中,您可以通过指定 useDefaultCredentialsProvider 选项并将其设置为 true 来避免使用显式静态凭证。

以下为 Default Credentials Provider 评估顺序如下:

  • Java 系统属性 - aws.accessKeyIdaws.secretKey.
  • 环境变量 - AWS_ACCESS_KEY_IDAWS_SECRET_ACCESS_KEY
  • AWS STS 的 Web Identity Token。
  • 共享凭证和配置文件。
  • Amazon ECS 容器凭据 - 如果设置了环境变量 AWS_CONTAINER_CREDENTIALS_RELATIVE_URI,则从 Amazon ECS 加载。
  • Amazon EC2 实例配置集凭据。

您还可以通过将 useProfileCredentialsProvider 选项设置为 true,将 profileCredentialsName 设置为配置集名称来使用 Profile Credentials Provider。

只能使用其中一个 access key/secret 密钥或默认凭证提供程序

如需更多信息,请参阅 AWS 凭证文档

15.2. 可选标头

在标头中,您可以选择性地设置 file / ce-file 属性,以指定要上传的文件的名称。

如果您没有在标头中设置属性,则 Kamelet 会将交换 ID 用于文件名。

15.3. 配置选项

下表总结了 aws-s3-sink Kamelet 可用的选项:

Expand
属性名称描述类型默认示例

bucketNameOrArn *

bucket 名称

S3 Bucket 名称或 Amazon Resource Name (ARN)。

字符串

  

region *

AWS 区域

用于访问的 AWS 区域。

字符串

  

accessKey

访问密钥

从 AWS 获取的访问密钥。

字符串

  

autoCreateBucket

autocreate Bucket

指定自动创建 S3 存储桶。

布尔值

False

 

forcePathStyle

强制路径样式

在访问 AWS S3 存储桶时强制路径风格。

布尔值

False

 

keyName

键名称

在存储桶中保存元素的密钥名称。

字符串

  

overrideEndpoint

端点覆盖

选择这个选项来覆盖端点 URI。要使用这个选项,还必须为 uriEndpointOverride 选项提供 URI。

布尔值

False

 

profileCredentialsName

配置集凭证名称

如果使用配置集凭证供应商,此参数会设置配置集名称。

字符串

  

secretKey

机密密钥

从 AWS 获取的 secret 密钥。

字符串

  

sessionToken

会话令牌

当用户需要假定 IAM 角色时使用的 Amazon AWS Session Token。

字符串

  

uriEndpointOverride

覆盖 Endpoint URI

覆盖端点 URI。要使用这个选项,还必须选择 overrideEndpoint 选项。

字符串

  

useDefaultCredentialsProvider

默认凭证提供程序

如果为 true,S3 客户端会通过默认凭证供应商加载凭证。如果为 false,它将使用基本的身份验证方法(access key 和 secret key)。

布尔值

False

 

useProfileCredentialsProvider

配置集凭证供应商

设置 S3 客户端是否应该预期通过配置集凭据提供程序加载凭据。

布尔值

False

 

useSessionCredentials

会话凭证

设置 S3 客户端是否应该预期使用 Session Credentials。这在用户需要假设 IAM 角色在 S3 中执行操作时非常有用。

布尔值

False

 

* = 标记为星号的字段 是必需的

15.4. 依赖项

15.4.1. Quarkus 依赖项

<dependencies>
  <dependency>
    <groupId>org.apache.camel.kamelets</groupId>
    <artifactId>camel-kamelets-utils</artifactId>
    <version>4.8.5</version>
  </dependency>
  <dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifactId>camel-quarkus-aws-s3</artifactId>
  </dependency>
  <dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifactId>camel-quarkus-aws2-s3</artifactId>
  </dependency>
  <dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifactId>camel-quarkus-kamelet</artifactId>
  </dependency>
</dependencies>
Copy to Clipboard Toggle word wrap

15.5. 使用方法

15.5.1. Camel JBang 用法

15.5.1.1. JBang 的先决条件
  • 安装 JBang
  • 您已执行以下命令:

    jbang app install camel@apache/camel
    Copy to Clipboard Toggle word wrap
15.5.1.2. 使用 JBang 运行路由

假设有一个名为 route.yaml 的文件,其中包含此内容:

- route:
    from:
      uri: "kamelet:timer-source"
      parameters:
        period: 10000
        message: 'test'
      steps:
        - to:
            uri: "kamelet:log-sink"
Copy to Clipboard Toggle word wrap

现在,您可以直接使用以下命令运行它。

camel run route.yaml
Copy to Clipboard Toggle word wrap

15.5.2. Knative Sink

您可以通过将它绑定到 Knative 对象,使用 aws-s3-sink Kamelet 作为 Knative sink。

aws-s3-sink-binding.yaml

apiVersion: camel.apache.org/v1
kind: Pipe
metadata:
  name: aws-s3-sink-binding
spec:
  source:
    ref:
      kind: Channel
      apiVersion: messaging.knative.dev/v1
      name: mychannel
  sink:
    ref:
      kind: Kamelet
      apiVersion: camel.apache.org/v1
      name: aws-s3-sink
    properties:
      accessKey: "The Access Key"
      bucketNameOrArn: "The Bucket Name"
      region: "eu-west-1"
      secretKey: "The Secret Key"
Copy to Clipboard Toggle word wrap

15.5.3. Kafka Sink

您可以通过将它绑定到 Kafka 主题,使用 aws-s3-sink Kamelet 作为 Kafka sink。

aws-s3-sink-binding.yaml

apiVersion: camel.apache.org/v1
kind: Pipe
metadata:
  name: aws-s3-sink-binding
spec:
  source:
    ref:
      kind: KafkaTopic
      apiVersion: kafka.strimzi.io/v1beta1
      name: my-topic
  sink:
    ref:
      kind: Kamelet
      apiVersion: camel.apache.org/v1
      name: aws-s3-sink
    properties:
      accessKey: "The Access Key"
      bucketNameOrArn: "The Bucket Name"
      region: "eu-west-1"
      secretKey: "The Secret Key"
Copy to Clipboard Toggle word wrap

15.6. kamelets 源文件

https://github.com/jboss-fuse/camel-kamelets/blob/camel-kamelets-4.10.3-branch/kamelets/aws-s3-sink.kamelet.yaml

第 16 章 AWS S3 源

从 Amazon S3 Bucket 接收数据。

S3 服务的基本验证方法是指定访问密钥和 secret 密钥。这些参数是可选的,因为 Kamelet 提供了默认凭证供应商。

如果您使用默认凭据提供程序,S3 客户端会通过此提供程序加载凭据,并且不使用基本的身份验证方法。

两个标头会以不同名称在 sink 级别上重复。CamelAwsS3Key 被重复到 aws.s3.keyCamelAwsS3BucketName 中,在 aws.s3.bucket.name 中重复。

16.1. 身份验证方法

在这个 Kamelet 中,您可以通过指定 useDefaultCredentialsProvider 选项并将其设置为 true 来避免使用显式静态凭证。

以下为 Default Credentials Provider 评估顺序如下:

  • Java 系统属性 - aws.accessKeyIdaws.secretKey.
  • 环境变量 - AWS_ACCESS_KEY_IDAWS_SECRET_ACCESS_KEY
  • AWS STS 的 Web Identity Token。
  • 共享凭证和配置文件。
  • Amazon ECS 容器凭据 - 如果设置了环境变量 AWS_CONTAINER_CREDENTIALS_RELATIVE_URI,则从 Amazon ECS 加载。
  • Amazon EC2 实例配置集凭据。

您还可以通过将 useProfileCredentialsProvider 选项设置为 true,将 profileCredentialsName 设置为配置集名称来使用 Profile Credentials Provider。

只能使用其中一个 access key/secret 密钥或默认凭证提供程序

如需更多信息,请参阅 AWS 凭证文档

16.2. 使用示例

您可以使用存储桶内容,并在被使用后直接删除对象

- route:
    from:
      uri: "kamelet:aws-s3-source"
      parameters:
        useDefaultCredentialsProvider: true
        region: "eu-west-1"
        bucketNameOrArn: "kamelets"
      steps:
        - to:
            uri: "kamelet:log-sink"
Copy to Clipboard Toggle word wrap

这种类型的方法可确保对象仅消耗一次,并在消费后从 S3 存储桶中删除。

deleteAfterRead 属性默认为 true。

如果将属性设置为 false,您将多次消耗同一组对象,您必须处理管理情况。

ignoreBody 选项默认设置为 false,但您可以启用它。使用此选项时,您将忽略文件有效负载,并且仅使用对象元数据。

您还可以定义 prefix 参数。使用该设置时,您将只消耗以该前缀开头的文件。例如,您可以有:

- route:
    from:
      uri: "kamelet:aws-s3-source"
      parameters:
        useDefaultCredentialsProvider: true
        region: "eu-west-1"
        bucketNameOrArn: "kamelets"
        prefix: "foo/"
      steps:
        - to:
            uri: "kamelet:log-sink"
Copy to Clipboard Toggle word wrap

通过使用前缀 foo/ 前缀,消耗的文件仅来自名为 foo 的文件夹。

16.3. 配置选项

下表总结了 aws-s3-source Kamelet 可用的选项:

Expand
属性名称描述类型默认示例

bucketNameOrArn *

bucket 名称

S3 Bucket 名称或 Amazon Resource Name (ARN)。

字符串

  

region *

AWS 区域

用于访问的 AWS 区域。

字符串

  

accessKey

访问密钥

从 AWS 获取的访问密钥。

字符串

  

autoCreateBucket

autocreate Bucket

指定自动创建 S3 存储桶。

布尔值

False

 

delay

delay

下一次轮询所选存储桶前的毫秒数。

整数

500

 

deleteAfterRead

自动删除对象

指定在消耗对象后删除对象。

布尔值

True

 

destinationBucket

目标 Bucket

定义当 moveAfterRead 设置为 true 时必须移动对象的目标存储桶。

字符串

  

destinationBucketPrefix

目标 Bucket Prefix

定义在必须移动对象时使用的目标存储桶前缀,并将 moveAfterRead 设置为 true。

字符串

  

destinationBucketSuffix

目标 Bucket Suffix

定义在必须移动对象时使用的目标存储桶后缀,并将 moveAfterRead 设置为 true。

字符串

  

forcePathStyle

强制路径样式

在访问 AWS S3 存储桶时强制路径风格。

布尔值

False

 

ignoreBody

忽略正文

如果为 true,则忽略 S3 对象正文。把它设置为 true 将覆盖 includeBody 选项定义的任何行为。如果为 false,则 S3 对象放在正文中。

布尔值

False

 

maxMessagesPerPoll

每个 Poll 的最大消息

获取最大消息数,作为每次轮询轮询的限制。获取最大消息数,作为每次轮询轮询的限制。默认值为 10。使用 0 或负数设置为无限。

整数

10

 

moveAfterRead

在删除后移动对象

在检索后,将对象从 S3 存储桶移到不同的存储桶。

布尔值

False

 

overrideEndpoint

端点覆盖

选择这个选项来覆盖端点 URI。要使用这个选项,还必须为 uriEndpointOverride 选项提供 URI。

布尔值

False

 

prefix

prefix

搜索时需要考虑的 AWS S3 存储桶前缀。

字符串

 

folder/

profileCredentialsName

配置集凭证名称

如果使用配置集凭证供应商,此参数会设置配置集名称。

字符串

  

secretKey

机密密钥

从 AWS 获取的 secret 密钥。

字符串

  

sessionToken

会话令牌

当用户需要假定 IAM 角色时使用的 Amazon AWS Session Token。

字符串

  

uriEndpointOverride

覆盖 Endpoint URI

覆盖端点 URI。要使用这个选项,还必须选择 overrideEndpoint 选项。

字符串

  

useDefaultCredentialsProvider

默认凭证提供程序

如果为 true,S3 客户端会通过默认凭证供应商加载凭证。如果为 false,它将使用基本的身份验证方法(access key 和 secret key)。

布尔值

False

 

useProfileCredentialsProvider

配置集凭证供应商

设置 S3 客户端是否应该预期通过配置集凭据提供程序加载凭据。

布尔值

False

 

useSessionCredentials

会话凭证

设置 S3 客户端是否应该预期使用 Session Credentials。这在用户需要假设 IAM 角色在 S3 中执行操作时非常有用。

布尔值

False

 

* = 标记为星号的字段 是必需的

16.4. 依赖项

16.4.1. Quarkus 依赖项

<dependencies>
  <dependency>
    <groupId>org.apache.camel.kamelets</groupId>
    <artifactId>camel-kamelets-utils</artifactId>
    <version>4.8.5</version>
  </dependency>
  <dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifactId>camel-quarkus-aws-s3-source</artifactId>
  </dependency>
  <dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifactId>camel-quarkus-aws2-s3</artifactId>
  </dependency>
  <dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifactId>camel-quarkus-kamelet</artifactId>
  </dependency>
</dependencies>
Copy to Clipboard Toggle word wrap

16.5. 使用方法

16.5.1. Camel JBang 用法

16.5.1.1. JBang 的先决条件
  • 安装 JBang
  • 您已执行以下命令:

    jbang app install camel@apache/camel
    Copy to Clipboard Toggle word wrap
16.5.1.2. 使用 JBang 运行路由

假设有一个名为 route.yaml 的文件,其中包含此内容:

- route:
    from:
      uri: "kamelet:timer-source"
      parameters:
        period: 10000
        message: 'test'
      steps:
        - to:
            uri: "kamelet:log-sink"
Copy to Clipboard Toggle word wrap

现在,您可以直接使用以下命令运行它。

camel run route.yaml
Copy to Clipboard Toggle word wrap

16.5.2. Knative Source

您可以通过将它绑定到 Knative 对象,使用 aws-s3-source Kamelet 作为 Knative 源。

aws-s3-source-binding.yaml

apiVersion: camel.apache.org/v1
kind: Pipe
metadata:
  name: aws-s3-source-binding
spec:
  source:
    ref:
      kind: Kamelet
      apiVersion: camel.apache.org/v1
      name: aws-s3-source
    properties:
      accessKey: "The Access Key"
      bucketNameOrArn: "The Bucket Name"
      region: "eu-west-1"
      secretKey: "The Secret Key"
  sink:
    ref:
      kind: Channel
      apiVersion: messaging.knative.dev/v1
      name: mychannel
Copy to Clipboard Toggle word wrap

16.5.3. Kafka 源

您可以通过将 aws-s3-source Kamelet 绑定到 Kafka 主题来使用 aws-s3-source Kamelet 作为 Kafka 源。

aws-s3-source-binding.yaml

apiVersion: camel.apache.org/v1
kind: Pipe
metadata:
  name: aws-s3-source-binding
spec:
  source:
    ref:
      kind: Kamelet
      apiVersion: camel.apache.org/v1
      name: aws-s3-source
    properties:
      accessKey: "The Access Key"
      bucketNameOrArn: "The Bucket Name"
      region: "eu-west-1"
      secretKey: "The Secret Key"
  sink:
    ref:
      kind: KafkaTopic
      apiVersion: kafka.strimzi.io/v1beta1
      name: my-topic
Copy to Clipboard Toggle word wrap

16.6. kamelets 源文件

https://github.com/jboss-fuse/camel-kamelets/blob/camel-kamelets-4.10.3-branch/kamelets/aws-s3-source.kamelet.yaml

第 17 章 AWS S3 Streaming upload Sink

在流上传模式中将数据上传到 AWS S3。

17.1. 身份验证方法

在这个 Kamelet 中,您可以通过指定 useDefaultCredentialsProvider 选项并将其设置为 true 来避免使用显式静态凭证。

以下为 Default Credentials Provider 评估顺序如下:

  • Java 系统属性 - aws.accessKeyIdaws.secretKey.
  • 环境变量 - AWS_ACCESS_KEY_IDAWS_SECRET_ACCESS_KEY
  • AWS STS 的 Web Identity Token。
  • 共享凭证和配置文件。
  • Amazon ECS 容器凭据 - 如果设置了环境变量 AWS_CONTAINER_CREDENTIALS_RELATIVE_URI,则从 Amazon ECS 加载。
  • Amazon EC2 实例配置集凭据。

您还可以通过将 useProfileCredentialsProvider 选项设置为 true,将 profileCredentialsName 设置为配置集名称来使用 Profile Credentials Provider。

只能使用其中一个 access key/secret 密钥或默认凭证提供程序

如需更多信息,请参阅 AWS 凭证文档

17.2. 可选标头

在标头中,您可以选择性地设置 file / ce-file 属性,以指定要上传的文件的名称。

如果您没有在标头中设置属性,则 Kamelet 会将交换 ID 用于文件名。

17.3. 配置选项

下表总结了 aws-s3-streaming-upload-sink Kamelet 可用的选项:

Expand
属性名称描述类型默认示例

bucketNameOrArn *

bucket 名称

S3 Bucket 名称或 Amazon Resource Name (ARN)。

字符串

  

keyName *

键名称

通过端点参数在存储桶中设置元素的密钥名称。在流上传中,使用默认配置,这是进度创建文件的基础。

字符串

  

region *

AWS 区域

用于访问的 AWS 区域。

字符串

  

accessKey

访问密钥

从 AWS 获取的访问密钥。

字符串

  

autoCreateBucket

autocreate Bucket

设置 S3 存储桶自动创建的 bucketName。

布尔值

False

 

batchMessageNumber

批量消息号

在流传输上传模式中制作批处理的消息数量。

整数

10

 

batchSize

批处理大小

流上传模式的批处理大小(以字节为单位)。

整数

1000000

 

forcePathStyle

强制路径样式

在访问 AWS S3 存储桶时强制路径风格。

布尔值

False

 

namingStrategy

命名策略

在流上传模式中使用的命名策略。有 2 个枚举,值可以是 progressive、random 之一。

字符串

progressive

 

overrideEndpoint

端点覆盖

选择这个选项来覆盖端点 URI。要使用这个选项,还必须为 uriEndpointOverride 选项提供 URI。

布尔值

False

 

profileCredentialsName

配置集凭证名称

如果使用配置集凭证供应商,此参数会设置配置集名称。

字符串

  

restartingPolicy

重启策略

在流上传模式中使用的重启策略。有 2 个 enums,值可以是 覆盖 之一,lastPart

字符串

lastPart

 

secretKey

机密密钥

从 AWS 获取的 secret 密钥。

字符串

  

sessionToken

会话令牌

当用户需要假定 IAM 角色时使用的 Amazon AWS Session Token。

字符串

  

streamingUploadTimeout

流上传超时

在流上传模式为 true 时,此选项会将超时设置为完成上传。

整数

  

uriEndpointOverride

覆盖 Endpoint URI

覆盖端点 URI。要使用这个选项,还必须选择 overrideEndpoint 选项。

字符串

  

useDefaultCredentialsProvider

默认凭证提供程序

设置 S3 客户端是否应该希望通过默认凭据提供程序加载凭据,或者希望传递静态凭据。

布尔值

False

 

useProfileCredentialsProvider

配置集凭证供应商

设置 S3 客户端是否应该预期通过配置集凭据提供程序加载凭据。

布尔值

False

 

useSessionCredentials

会话凭证

设置 S3 客户端是否应该预期使用 Session Credentials。这在用户需要假设 IAM 角色在 S3 中执行操作时非常有用。

布尔值

False

 

* = 标记为星号的字段 是必需的

17.4. 依赖项

17.4.1. Quarkus 依赖项

<dependencies>
  <dependency>
    <groupId>org.apache.camel.kamelets</groupId>
    <artifactId>camel-kamelets-utils</artifactId>
    <version>4.8.5</version>
  </dependency>
  <dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifactId>camel-quarkus-aws-s3-streaming-upload</artifactId>
  </dependency>
  <dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifactId>camel-quarkus-aws2-s3</artifactId>
  </dependency>
  <dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifactId>camel-quarkus-kamelet</artifactId>
  </dependency>
</dependencies>
Copy to Clipboard Toggle word wrap

17.5. 使用方法

17.5.1. Camel JBang 用法

17.5.1.1. JBang 的先决条件
  • 安装 JBang
  • 您已执行以下命令:

    jbang app install camel@apache/camel
    Copy to Clipboard Toggle word wrap
17.5.1.2. 使用 JBang 运行路由

假设有一个名为 route.yaml 的文件,其中包含此内容:

- route:
    from:
      uri: "kamelet:timer-source"
      parameters:
        period: 10000
        message: 'test'
      steps:
        - to:
            uri: "kamelet:log-sink"
Copy to Clipboard Toggle word wrap

现在,您可以直接使用以下命令运行它。

camel run route.yaml
Copy to Clipboard Toggle word wrap

17.5.2. Knative Sink

您可以通过将它绑定到一个 Knative 对象,使用 aws-s3-streaming-upload-sink Kamelet 作为 Knative sink。

aws-s3-streaming-upload-sink-binding.yaml

apiVersion: camel.apache.org/v1
kind: Pipe
metadata:
  name: aws-s3-streaming-upload-sink-binding
spec:
  source:
    ref:
      kind: Channel
      apiVersion: messaging.knative.dev/v1
      name: mychannel
  sink:
    ref:
      kind: Kamelet
      apiVersion: camel.apache.org/v1
      name: aws-s3-streaming-upload-sink
    properties:
      accessKey: "The Access Key"
      bucketNameOrArn: "The Bucket Name"
      keyName: "The Key Name"
      region: "eu-west-1"
      secretKey: "The Secret Key"
Copy to Clipboard Toggle word wrap

17.5.3. Kafka Sink

您可以通过将它绑定到一个 Knative 主题,使用 aws-s3-streaming-upload-sink Kamelet 作为 Kafka sink。

aws-s3-streaming-upload-sink-binding.yaml

apiVersion: camel.apache.org/v1
kind: Pipe
metadata:
  name: aws-s3-streaming-upload-sink-binding
spec:
  source:
    ref:
      kind: KafkaTopic
      apiVersion: kafka.strimzi.io/v1beta1
      name: my-topic
  sink:
    ref:
      kind: Kamelet
      apiVersion: camel.apache.org/v1
      name: aws-s3-streaming-upload-sink
    properties:
      accessKey: "The Access Key"
      bucketNameOrArn: "The Bucket Name"
      keyName: "The Key Name"
      region: "eu-west-1"
      secretKey: "The Secret Key"
Copy to Clipboard Toggle word wrap

17.6. kamelets 源文件

https://github.com/jboss-fuse/camel-kamelets/blob/camel-kamelets-4.10.3-branch/kamelets/aws-s3-streaming-upload-sink.kamelet.yaml

第 18 章 Cassandra Sink

将数据发送到 Apache Cassandra 集群。

此 Kamelet 需要 JSON Array 格式的数据。JSON Array 的内容用作查询参数中设置的 CQL Prepared Statement 的输入。

18.1. 配置选项

下表总结了 cassandra-sink Kamelet 可用的选项:

Expand
属性名称描述类型默认示例

connectionHost *

连接主机

Cassandra 服务器的主机名。使用逗号分隔多个主机名。

字符串

 

localhost

connectionPort *

连接端口

cassandra 服务器的端口号。使用逗号分隔多个端口号。

字符串

 

9042

Keyspace *

键空间

要使用的键空间。

字符串

 

客户

query *

查询

要针对 Cassandra 集群表执行的查询。

字符串

  

consistencyLevel

一致性级别

要使用的一致性级别。

字符串

ANY

 

extraTypeCodecs

额外类型代码cs

使用特定逗号分隔的 Extra Type codecs 列表。

字符串

  

jsonPayload

JSON Payload

如果要在 json 中转换有效负载

布尔值

True

 

password

密码

用于访问安全 Cassandra 集群的密码。

字符串

  

prepareStatements

准备声明

如果为 true,则指定使用 PreparedStatements 作为查询。如果为 false,指定使用常规声明作为查询。

布尔值

True

 

username

用户名

用于访问安全 Cassandra 集群的用户名。

字符串

  

* = 标记为星号的字段 是必需的

18.2. 依赖项

18.2.1. Quarkus 依赖项

<dependencies>
  <dependency>
    <groupId>org.apache.camel.kamelets</groupId>
    <artifactId>camel-kamelets-utils</artifactId>
    <version>4.8.5</version>
  </dependency>
  <dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifactId>camel-quarkus-cassandraql-ddb</artifactId>
  </dependency>
  <dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifactId>camel-quarkus-core</artifactId>
  </dependency>
  <dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifactId>camel-quarkus-jackson</artifactId>
  </dependency>
  <dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifactId>camel-quarkus-kamelet</artifactId>
  </dependency>
</dependencies>
Copy to Clipboard Toggle word wrap

18.3. 使用方法

18.3.1. Camel JBang 用法

18.3.1.1. JBang 的先决条件
  • 安装 JBang
  • 您已执行以下命令:

    jbang app install camel@apache/camel
    Copy to Clipboard Toggle word wrap
18.3.1.2. 使用 JBang 运行路由

假设有一个名为 route.yaml 的文件,其中包含此内容:

- route:
    from:
      uri: "kamelet:timer-source"
      parameters:
        period: 10000
        message: 'test'
      steps:
        - to:
            uri: "kamelet:log-sink"
Copy to Clipboard Toggle word wrap

现在,您可以直接使用以下命令运行它。

camel run route.yaml
Copy to Clipboard Toggle word wrap

18.3.2. Knative Sink

您可以通过将 cassandra-sink Kamelet 绑定到 Knative 对象来使用 cassandra-sink Kamelet 作为 Knative sink。

cassandra-sink-binding.yaml

apiVersion: camel.apache.org/v1
kind: Pipe
metadata:
  name: cassandra-sink-binding
spec:
  source:
    ref:
      kind: Channel
      apiVersion: messaging.knative.dev/v1
      name: mychannel
  sink:
    ref:
      kind: Kamelet
      apiVersion: camel.apache.org/v1
      name: cassandra-sink
    properties:
      connectionHost: "localhost"
      connectionPort: 9042
      keyspace: "customers"
      password: "The Password"
      query: "The Query"
      username: "The Username"
Copy to Clipboard Toggle word wrap

18.3.3. Kafka Sink

您可以通过将 cassandra-sink Kamelet 绑定到 Kafka 主题来将 cassandra-sink Kamelet 用作 Kafka sink。

cassandra-sink-binding.yaml

apiVersion: camel.apache.org/v1
kind: Pipe
metadata:
  name: cassandra-sink-binding
spec:
  source:
    ref:
      kind: KafkaTopic
      apiVersion: kafka.strimzi.io/v1beta1
      name: my-topic
  sink:
    ref:
      kind: Kamelet
      apiVersion: camel.apache.org/v1
      name: cassandra-sink
    properties:
      connectionHost: "localhost"
      connectionPort: 9042
      keyspace: "customers"
      password: "The Password"
      query: "The Query"
      username: "The Username"
Copy to Clipboard Toggle word wrap

18.4. kamelets 源文件

https://github.com/jboss-fuse/camel-kamelets/blob/camel-kamelets-4.10.3-branch/kamelets/cassandra-sink.kamelet.yaml

第 19 章 Cassandra 源

发送查询到 Apache Cassandra 集群表。

19.1. 配置选项

下表总结了 cassandra-source Kamelet 可用的选项:

Expand
属性名称描述类型默认示例

connectionHost *

连接主机

Cassandra 服务器的主机名。使用逗号分隔多个主机名。

字符串

 

localhost

connectionPort *

连接端口

cassandra 服务器的端口号。使用逗号分隔多个端口号。

字符串

 

9042

Keyspace *

键空间

要使用的键空间。

字符串

 

客户

query *

查询

要针对 Cassandra 集群表执行的查询。

字符串

  

consistencyLevel

一致性级别

要使用的一致性级别。

字符串

仲裁(QUORUM)

 

extraTypeCodecs

额外类型代码cs

使用特定逗号分隔的 Extra Type codecs 列表。

字符串

  

password

密码

用于访问安全 Cassandra 集群的密码。

字符串

  

resultStrategy

结果策略

转换查询的结果集合的策略。

字符串

ALL

 

username

用户名

用于访问安全 Cassandra 集群的用户名。

字符串

  

* = 标记为星号的字段 是必需的

19.2. 依赖项

19.2.1. Quarkus 依赖项

<dependencies>
  <dependency>
    <groupId>org.apache.camel.kamelets</groupId>
    <artifactId>camel-kamelets-utils</artifactId>
    <version>4.8.5</version>
  </dependency>
  <dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifactId>camel-quarkus-cassandraql-ddb</artifactId>
  </dependency>
  <dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifactId>camel-quarkus-jackson</artifactId>
  </dependency>
  <dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifactId>camel-quarkus-kamelet</artifactId>
  </dependency>
</dependencies>
Copy to Clipboard Toggle word wrap

19.3. 使用方法

19.3.1. Camel JBang 用法

19.3.1.1. JBang 的先决条件
  • 安装 JBang
  • 您已执行以下命令:

    jbang app install camel@apache/camel
    Copy to Clipboard Toggle word wrap
19.3.1.2. 使用 JBang 运行路由

假设有一个名为 route.yaml 的文件,其中包含此内容:

- route:
    from:
      uri: "kamelet:timer-source"
      parameters:
        period: 10000
        message: 'test'
      steps:
        - to:
            uri: "kamelet:log-sink"
Copy to Clipboard Toggle word wrap

现在,您可以直接使用以下命令运行它。

camel run route.yaml
Copy to Clipboard Toggle word wrap

19.3.2. Knative Source

您可以通过将 cassandra-source Kamelet 绑定到 Knative 对象来使用 cassandra-source Kamelet 作为 Knative 源。

cassandra-source-binding.yaml

apiVersion: camel.apache.org/v1
kind: Pipe
metadata:
  name: cassandra-source-binding
spec:
  source:
    ref:
      kind: Kamelet
      apiVersion: camel.apache.org/v1
      name: cassandra-source
    properties:
      connectionHost: "localhost"
      connectionPort: 9042
      keyspace: "customers"
      password: "The Password"
      query: "The Query"
      username: "The Username"
  sink:
    ref:
      kind: Channel
      apiVersion: messaging.knative.dev/v1
      name: mychannel
Copy to Clipboard Toggle word wrap

19.3.3. Kafka 源

您可以通过将 cassandra-source Kamelet 绑定到 Kafka 主题来将 cassandra-source Kamelet 用作 Kafka 源。

cassandra-source-binding.yaml

apiVersion: camel.apache.org/v1
kind: Pipe
metadata:
  name: cassandra-source-binding
spec:
  source:
    ref:
      kind: Kamelet
      apiVersion: camel.apache.org/v1
      name: cassandra-source
    properties:
      connectionHost: "localhost"
      connectionPort: 9042
      keyspace: "customers"
      password: "The Password"
      query: "The Query"
      username: "The Username"
  sink:
    ref:
      kind: KafkaTopic
      apiVersion: kafka.strimzi.io/v1beta1
      name: my-topic
Copy to Clipboard Toggle word wrap

19.4. kamelets 源文件

https://github.com/jboss-fuse/camel-kamelets/blob/camel-kamelets-4.10.3-branch/kamelets/cassandra-source.kamelet.yaml

第 20 章 Ceph Sink

将数据上传到由对象存储网关管理的 Ceph Bucket。

在标头中,您可以选择性地设置 file / ce-file 属性,以指定要上传的文件的名称。

如果您没有在标头中设置属性,则 Kamelet 会将交换 ID 用于文件名。

20.1. 配置选项

下表总结了 ceph-sink Kamelet 可用的选项:

Expand
属性名称描述类型默认示例

accessKey *

访问密钥

access key。

字符串

  

bucketName *

bucket 名称

Ceph Bucket 名称。

字符串

  

cephUrl *

Ceph Url Address

设置 Ceph Object Storage Address Url。

字符串

 

http://ceph-storage-address.com

secretKey *

机密密钥

secret 密钥。

字符串

  

zoneGroup *

bucket 区组

bucket zone group。

字符串

  

autoCreateBucket

autocreate Bucket

指定自动创建存储桶。

布尔值

False

 

keyName

键名称

在存储桶中保存元素的密钥名称。

字符串

  

* = 标记为星号的字段 是必需的

20.2. 依赖项

20.2.1. Quarkus 依赖项

<dependencies>
  <dependency>
    <groupId>org.apache.camel.kamelets</groupId>
    <artifactId>camel-kamelets-utils</artifactId>
    <version>4.8.5</version>
  </dependency>
  <dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifactId>camel-quarkus-aws2-s3</artifactId>
  </dependency>
  <dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifactId>camel-quarkus-core</artifactId>
  </dependency>
  <dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifactId>camel-quarkus-kamelet</artifactId>
  </dependency>
</dependencies>
Copy to Clipboard Toggle word wrap

20.3. 使用方法

20.3.1. Camel JBang 用法

20.3.1.1. JBang 的先决条件
  • 安装 JBang
  • 您已执行以下命令:

    jbang app install camel@apache/camel
    Copy to Clipboard Toggle word wrap
20.3.1.2. 使用 JBang 运行路由

假设有一个名为 route.yaml 的文件,其中包含此内容:

- route:
    from:
      uri: "kamelet:timer-source"
      parameters:
        period: 10000
        message: 'test'
      steps:
        - to:
            uri: "kamelet:log-sink"
Copy to Clipboard Toggle word wrap

现在,您可以直接使用以下命令运行它。

camel run route.yaml
Copy to Clipboard Toggle word wrap

20.3.2. Knative Sink

您可以通过将 ceph-sink Kamelet 绑定到 Knative 对象来使用 ceph-sink Kamelet 作为 Knative sink。

ceph-sink-binding.yaml

apiVersion: camel.apache.org/v1
kind: Pipe
metadata:
  name: ceph-sink-binding
spec:
  source:
    ref:
      kind: Channel
      apiVersion: messaging.knative.dev/v1
      name: mychannel
  sink:
    ref:
      kind: Kamelet
      apiVersion: camel.apache.org/v1
      name: ceph-sink
    properties:
      accessKey: "The Access Key"
      bucketName: "The Bucket Name"
      cephUrl: "http://ceph-storage-address.com"
      secretKey: "The Secret Key"
      zoneGroup: "The Bucket Zone Group"
Copy to Clipboard Toggle word wrap

20.3.3. Kafka Sink

您可以通过将 ceph-sink Kamelet 绑定到 Kafka 主题来使用 ceph-sink Kamelet 作为 Kafka sink。

ceph-sink-binding.yaml

apiVersion: camel.apache.org/v1
kind: Pipe
metadata:
  name: ceph-sink-binding
spec:
  source:
    ref:
      kind: KafkaTopic
      apiVersion: kafka.strimzi.io/v1beta1
      name: my-topic
  sink:
    ref:
      kind: Kamelet
      apiVersion: camel.apache.org/v1
      name: ceph-sink
    properties:
      accessKey: "The Access Key"
      bucketName: "The Bucket Name"
      cephUrl: "http://ceph-storage-address.com"
      secretKey: "The Secret Key"
      zoneGroup: "The Bucket Zone Group"
Copy to Clipboard Toggle word wrap

20.4. kamelets 源文件

https://github.com/jboss-fuse/camel-kamelets/blob/camel-kamelets-4.10.3-branch/kamelets/ceph-sink.kamelet.yaml

第 21 章 Ceph 源

从由对象存储网关管理的 Ceph Bucket 接收数据。

21.1. 配置选项

下表总结了 ceph-source Kamelet 可用的选项:

Expand
属性名称描述类型默认示例

accessKey *

访问密钥

access key。

字符串

  

bucketName *

bucket 名称

Ceph Bucket 名称。

字符串

  

cephUrl *

Ceph Url Address

设置 Ceph Object Storage Address Url。

字符串

 

http://ceph-storage-address.com

secretKey *

机密密钥

secret 密钥。

字符串

  

zoneGroup *

bucket 区组

bucket zone group。

字符串

  

autoCreateBucket

autocreate Bucket

指定自动创建存储桶。

布尔值

False

 

delay

delay

下一次轮询所选存储桶前的毫秒数。

整数

500

 

deleteAfterRead

自动删除对象

指定在消耗对象后删除对象。

布尔值

True

 

ignoreBody

忽略正文

如果为 true,则忽略对象正文。把它设置为 true 将覆盖 includeBody 选项定义的任何行为。如果为 false,则对象放置在正文中。

布尔值

False

 

includeBody

包含正文

如果为 true,则将使用交换并放入正文和关闭中。如果为 false,则对象流将原始放在正文中,标头使用对象元数据设置。

布尔值

True

 

prefix

prefix

搜索时要考虑的存储桶前缀。

字符串

 

folder/

* = 标记为星号的字段 是必需的

21.2. 依赖项

21.2.1. Quarkus 依赖项

<dependencies>
  <dependency>
    <groupId>org.apache.camel.kamelets</groupId>
    <artifactId>camel-kamelets-utils</artifactId>
    <version>4.8.5</version>
  </dependency>
  <dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifactId>camel-quarkus-aws2-s3</artifactId>
  </dependency>
  <dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifactId>camel-quarkus-kamelet</artifactId>
  </dependency>
</dependencies>
Copy to Clipboard Toggle word wrap

21.3. 使用方法

21.3.1. Camel JBang 用法

21.3.1.1. JBang 的先决条件
  • 安装 JBang
  • 您已执行以下命令:

    jbang app install camel@apache/camel
    Copy to Clipboard Toggle word wrap
21.3.1.2. 使用 JBang 运行路由

假设有一个名为 route.yaml 的文件,其中包含此内容:

- route:
    from:
      uri: "kamelet:timer-source"
      parameters:
        period: 10000
        message: 'test'
      steps:
        - to:
            uri: "kamelet:log-sink"
Copy to Clipboard Toggle word wrap

现在,您可以直接使用以下命令运行它。

camel run route.yaml
Copy to Clipboard Toggle word wrap

21.3.2. Knative Source

您可以通过将 ceph-source Kamelet 绑定到 Knative 对象来使用 ceph-source Kamelet 作为 Knative 源。

ceph-source-binding.yaml

apiVersion: camel.apache.org/v1
kind: Pipe
metadata:
  name: ceph-source-binding
spec:
  source:
    ref:
      kind: Kamelet
      apiVersion: camel.apache.org/v1
      name: ceph-source
    properties:
      accessKey: "The Access Key"
      bucketName: "The Bucket Name"
      cephUrl: "http://ceph-storage-address.com"
      secretKey: "The Secret Key"
      zoneGroup: "The Bucket Zone Group"
  sink:
    ref:
      kind: Channel
      apiVersion: messaging.knative.dev/v1
      name: mychannel
Copy to Clipboard Toggle word wrap

21.3.3. Kafka 源

您可以通过将 ceph-source Kamelet 绑定到 Kafka 主题来将 ceph-source Kamelet 用作 Kafka 源。

ceph-source-binding.yaml

apiVersion: camel.apache.org/v1
kind: Pipe
metadata:
  name: ceph-source-binding
spec:
  source:
    ref:
      kind: Kamelet
      apiVersion: camel.apache.org/v1
      name: ceph-source
    properties:
      accessKey: "The Access Key"
      bucketName: "The Bucket Name"
      cephUrl: "http://ceph-storage-address.com"
      secretKey: "The Secret Key"
      zoneGroup: "The Bucket Zone Group"
  sink:
    ref:
      kind: KafkaTopic
      apiVersion: kafka.strimzi.io/v1beta1
      name: my-topic
Copy to Clipboard Toggle word wrap

21.4. kamelets 源文件

https://github.com/jboss-fuse/camel-kamelets/blob/camel-kamelets-4.10.3-branch/kamelets/ceph-source.kamelet.yaml

第 22 章 Elasticsearch Index Sink

将 JSON 格式的数据存储在 ElasticSearch 中。

输入数据必须以 JSON 格式格式化,具体取决于索引的要求。

如果指定了 certificate 属性,则必须将其 base64 编码,然后才能将其作为参数传递。

在标头中,您可以设置以下属性:

  • indexId / ce-indexid : ElasticSearch 的索引 ID。
  • indexName / ce-indexname : ElasticSearch 的索引名称。

如果您没有在标头中设置属性,则 Kamelet 将交换 ID 用于索引设置。

22.1. 配置选项

下表总结了 elasticsearch-index-sink Kamelet 可用的选项:

Expand
属性名称描述类型默认示例

clusterName *

Elasticsearch 集群名称

ElasticSearch 集群的名称。

字符串

 

quickstart

hostAddresses *

主机地址

以逗号分隔的远程传输地址列表,格式为

字符串

 

quickstart-es-http:9200

certificate

证书

用于访问 Elasticsearch 集群的证书。您必须使用 base64 对这个值进行编码。

字符串

  

enableSSL

启用 SSL

指定使用 SSL 进行连接。

布尔值

True

 

indexName

ElasticSearch 中的索引

ElasticSearch 索引的名称。

字符串

 

data

password

密码

要连接到 ElasticSearch 的密码。

字符串

  

user

用户名

要连接到 ElasticSearch 的用户名。

字符串

  

* = 标记为星号的字段 是必需的

22.2. 依赖项

22.2.1. Quarkus 依赖项

<dependencies>
  <dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifact>camel-quarkus-bean</artifact>
  </dependency>
  <dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifact>camel-quarkus-core</artifact>
  </dependency>
  <dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifact>camel-quarkus-elasticsearch</artifact>
  </dependency>
  <dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifact>camel-quarkus-gson</artifact>
  </dependency>
  <dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifact>camel-quarkus-jackson</artifact>
  </dependency>
  <dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifact>camel-quarkus-kamelet</artifact>
  </dependency>
  <dependency>
    <groupId>org.apache.camel.kamelets</groupId>
    <artifact>camel-kamelets-utils</artifact>
    <version>4.8.5</version>
  </dependency>
</dependencies>
Copy to Clipboard Toggle word wrap

22.3. 使用方法

22.3.1. Camel JBang 用法

22.3.1.1. JBang 的先决条件
  • 安装 JBang
  • 您已执行以下命令:

    jbang app install camel@apache/camel
    Copy to Clipboard Toggle word wrap
22.3.1.2. 使用 JBang 运行路由

假设有一个名为 route.yaml 的文件,其中包含此内容:

- route:
    from:
      uri: "kamelet:timer-source"
      parameters:
        period: 10000
        message: 'test'
      steps:
        - to:
            uri: "kamelet:log-sink"
Copy to Clipboard Toggle word wrap

现在,您可以直接使用以下命令运行它。

camel run route.yaml
Copy to Clipboard Toggle word wrap

22.3.2. Knative Sink

您可以通过将它绑定到 Knative 对象,使用 elasticsearch-index-sink Kamelet 作为 Knative sink。

elasticsearch-index-sink-binding.yaml

apiVersion: camel.apache.org/v1
kind: Pipe
metadata:
  name: elasticsearch-index-sink-binding
spec:
  source:
    ref:
      kind: Channel
      apiVersion: messaging.knative.dev/v1
      name: mychannel
  sink:
    ref:
      kind: Kamelet
      apiVersion: camel.apache.org/v1
      name: elasticsearch-index-sink
    properties:
      clusterName: "quickstart"
      hostAddresses: "quickstart-es-http:9200"
Copy to Clipboard Toggle word wrap

22.3.3. Kafka Sink

您可以通过将它绑定到 Kafka 主题,使用 elasticsearch-index-sink Kamelet 作为 Kafka sink。

elasticsearch-index-sink-binding.yaml

apiVersion: camel.apache.org/v1
kind: Pipe
metadata:
  name: elasticsearch-index-sink-binding
spec:
  source:
    ref:
      kind: KafkaTopic
      apiVersion: kafka.strimzi.io/v1beta1
      name: my-topic
  sink:
    ref:
      kind: Kamelet
      apiVersion: camel.apache.org/v1
      name: elasticsearch-index-sink
    properties:
      clusterName: "quickstart"
      hostAddresses: "quickstart-es-http:9200"
Copy to Clipboard Toggle word wrap

22.4. kamelets 源文件

https://github.com/jboss-fuse/camel-kamelets/blob/camel-kamelets-4.10.3-branch/kamelets/elasticsearch-index-sink.kamelet.yaml

第 23 章 提取字段操作

从消息正文中提取字段。

extract 字段操作需要一个 application/json 内容类型。

field 参数指定要提取的 JSON 中的哪个字段。默认情况下,消息正文使用解压的字段覆盖。

可选参数 标头Output 指定提取的字段是否应存储在名为 'CamelKameletsExtractFieldName' 的消息标头中,保留消息正文。

可选参数 标头OutputName 指定自定义标头名称,而不是默认的 'CamelKameletsExtractFieldName'。此参数必须与 标头输出 一起使用。如果没有提供 headerOutputName 参数,则使用默认的 'CamelKameletsExtractFieldName'。

可选参数 strictHeaderCheck 启用严格的标头名称检查。如果启用,则操作会检查在交换中是否已使用标头输出名称(custom 或 default)。如果是,提取的字段将存储在消息正文中(如果没有),提取的字段将存储在所选标头中(custom 或 default)。

当您想要将提取的字段重复使用为另一个标头的参数时,headerOutput/headerOutputName/strictHeaderCheck 参数特别有用。

23.1. 配置选项

下表总结了 extract-field-action Kamelet 可用的选项:

Expand
属性名称描述类型默认示例

字段 *

字段

要提取的字段名称

字符串

  

headerOutput

标头输出

如果启用操作会将解压的字段存储在名为 CamelKameletsExtractFieldName 的标头中

布尔值

False

 

headerOutputName

标头输出名称

包含提取字段的标头的自定义名称

字符串

none

 

strictHeaderCheck

严格的标头检查

如果启用该操作,将检查是否已在交换中使用了标头输出名称(custom 或 default)。如果是,提取的字段将存储在消息正文中(如果没有),提取的字段将存储在所选标头中(custom 或 default)。

布尔值

False

 

trimField

trim Field

如果启用,我们返回 Raw extracted 字段

布尔值

False

 

* = 标记为星号的字段 是必需的

23.2. 依赖项

23.2.1. Quarkus 依赖项

<dependencies>
  <dependency>
    <groupId>org.apache.camel.kamelets</groupId>
    <artifactId>camel-kamelets-utils</artifactId>
    <version>4.8.5</version>
  </dependency>
  <dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifactId>camel-quarkus-core</artifactId>
  </dependency>
  <dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifactId>camel-quarkus-jackson</artifactId>
  </dependency>
  <dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifactId>camel-quarkus-kafka</artifactId>
  </dependency>
  <dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifactId>camel-quarkus-kamelet</artifactId>
  </dependency>
</dependencies>
Copy to Clipboard Toggle word wrap

23.3. 使用方法

23.3.1. Camel JBang 用法

23.3.1.1. JBang 的先决条件
  • 安装 JBang
  • 您已执行以下命令:

    jbang app install camel@apache/camel
    Copy to Clipboard Toggle word wrap
23.3.1.2. 使用 JBang 运行路由

假设有一个名为 route.yaml 的文件,其中包含此内容:

- route:
    from:
      uri: "kamelet:timer-source"
      parameters:
        period: 10000
        message: 'test'
      steps:
        - to:
            uri: "kamelet:log-sink"
Copy to Clipboard Toggle word wrap

现在,您可以直接使用以下命令运行它。

camel run route.yaml
Copy to Clipboard Toggle word wrap

23.3.2. Knative Action

您可以使用 extract-field-action Kamelet 作为 Knative 绑定中的中间步骤。

extract-field-action-binding.yaml

apiVersion: camel.apache.org/v1
kind: Pipe
metadata:
  name: extract-field-action-binding
spec:
  source:
    ref:
      kind: Kamelet
      apiVersion: camel.apache.org/v1
      name: timer-source
    properties:
      message: "Hello"
  steps:
  - ref:
      kind: Kamelet
      apiVersion: camel.apache.org/v1
      name: extract-field-action
    properties:
      field: "The Field"
  sink:
    ref:
      kind: Channel
      apiVersion: messaging.knative.dev/v1
      name: mychannel
Copy to Clipboard Toggle word wrap

23.3.3. Kafka 操作

您可以使用 extract-field-action Kamelet 作为 Kafka 绑定中的中间步骤。

extract-field-action-binding.yaml

apiVersion: camel.apache.org/v1
kind: Pipe
metadata:
  name: extract-field-action-binding
spec:
  source:
    ref:
      kind: Kamelet
      apiVersion: camel.apache.org/v1
      name: timer-source
    properties:
      message: "Hello"
  steps:
  - ref:
      kind: Kamelet
      apiVersion: camel.apache.org/v1
      name: extract-field-action
    properties:
      field: "The Field"
  sink:
    ref:
      kind: KafkaTopic
      apiVersion: kafka.strimzi.io/v1beta1
      name: my-topic
Copy to Clipboard Toggle word wrap

23.4. kamelets 源文件

https://github.com/jboss-fuse/camel-kamelets/blob/camel-kamelets-4.10.3-branch/kamelets/extract-field-action.kamelet.yaml

第 24 章 FTP Sink

将数据发送到 FTP 服务器。

在标头中,您可以设置 file / ce-file 属性来指定要上传的文件名。

如果您没有在标头中设置属性,则 Kamelet 将交换 ID 用于文件名。

24.1. 配置选项

下表总结了可用于 ftp-sink Kamelet 的配置选项:

Expand
属性名称描述类型默认示例

connectionHost *

连接主机

FTP 服务器的主机名。

字符串

  

connectionPort *

连接端口

FTP 服务器的端口。

字符串

21

 

directoryName *

目录名称

起始目录。

字符串

  

password *

密码

用于访问 FTP 服务器的密码。

字符串

  

username *

用户名

用于访问 FTP 服务器的用户名。

字符串

  

autoCreate

autocreate Missing directory

自动创建文件应写入的目录。

布尔值

True

 

二进制

二进制

指定文件传输模式 BINARY 或 ASCII。默认为 ASCII (false)。

布尔值

False

 

fileExist

文件存储

如果文件已存在,如何的行为。

字符串

override

 

passiveMode

被动模式

指定使用被动模式连接。

布尔值

False

 

* = 标记为星号的字段 是必需的

24.2. 依赖项

24.2.1. Quarkus 依赖项

<dependencies>
  <dependency>
    <groupId>org.apache.camel.kamelets</groupId>
    <artifactId>camel-kamelets-utils</artifactId>
    <version>4.8.5</version>
  </dependency>
  <dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifactId>camel-quarkus-core</artifactId>
  </dependency>
  <dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifactId>camel-quarkus-ftp</artifactId>
  </dependency>
  <dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifactId>camel-quarkus-kamelet</artifactId>
  </dependency>
</dependencies>
Copy to Clipboard Toggle word wrap

24.3. 使用方法

24.3.1. Camel JBang 用法

24.3.1.1. JBang 的先决条件
  • 安装 JBang
  • 您已执行以下命令:

    jbang app install camel@apache/camel
    Copy to Clipboard Toggle word wrap
24.3.1.2. 使用 JBang 运行路由

假设有一个名为 route.yaml 的文件,其中包含此内容:

- route:
    from:
      uri: "kamelet:timer-source"
      parameters:
        period: 10000
        message: 'test'
      steps:
        - to:
            uri: "kamelet:log-sink"
Copy to Clipboard Toggle word wrap

现在,您可以直接使用以下命令运行它。

camel run route.yaml
Copy to Clipboard Toggle word wrap

24.3.2. Knative Sink

您可以通过将 ftp-sink Kamelet 绑定到 Knative 对象来使用 ftp-sink Kamelet 作为 Knative sink。

ftp-sink-binding.yaml

apiVersion: camel.apache.org/v1
kind: Pipe
metadata:
  name: ftp-sink-binding
spec:
  source:
    ref:
      kind: Channel
      apiVersion: messaging.knative.dev/v1
      name: mychannel
  sink:
    ref:
      kind: Kamelet
      apiVersion: camel.apache.org/v1
      name: ftp-sink
    properties:
      connectionHost: "The Connection Host"
      directoryName: "The Directory Name"
      password: "The Password"
      username: "The Username"
Copy to Clipboard Toggle word wrap

24.3.3. Kafka Sink

您可以通过将 ftp-sink Kamelet 绑定到 Kafka 主题来使用 ftp-sink Kamelet 作为 Kafka sink。

ftp-sink-binding.yaml

apiVersion: camel.apache.org/v1
kind: Pipe
metadata:
  name: ftp-sink-binding
spec:
  source:
    ref:
      kind: KafkaTopic
      apiVersion: kafka.strimzi.io/v1beta1
      name: my-topic
  sink:
    ref:
      kind: Kamelet
      apiVersion: camel.apache.org/v1
      name: ftp-sink
    properties:
      connectionHost: "The Connection Host"
      directoryName: "The Directory Name"
      password: "The Password"
      username: "The Username"
Copy to Clipboard Toggle word wrap

24.4. kamelets 源文件

https://github.com/jboss-fuse/camel-kamelets/blob/camel-kamelets-4.10.3-branch/kamelets/ftp-sink.kamelet.yaml

第 25 章 FTP 源

从 FTP 服务器接收数据。

25.1. 配置选项

下表总结了可用于 ftp-source Kamelet 的配置选项:

Expand
属性名称描述类型默认示例

connectionHost *

连接主机

FTP 服务器的主机名。

字符串

  

connectionPort *

连接端口

FTP 服务器的端口。

字符串

21

 

directoryName *

目录名称

起始目录

字符串

  

password *

密码

用于访问 FTP 服务器的密码。

字符串

  

username *

用户名

用于访问 FTP 服务器的用户名。

字符串

  

autoCreate

autocreate Missing directory

自动创建起始目录。

布尔值

True

 

二进制

二进制

指定文件传输模式 BINARY 或 ASCII。默认为 ASCII (false)。

布尔值

False

 

delete

删除

如果为 true,则在成功处理后会删除该文件。

布尔值

False

 

idempotent

idempotency

跳过已处理的文件。

布尔值

True

 

passiveMode

被动模式

Specifes 使用被动模式连接。

布尔值

False

 

递归

递归

如果一个目录,也查找所有子目录中的文件。

布尔值

False

 

* = 标记为星号的字段 是必需的

25.2. 依赖项

25.2.1. Quarkus 依赖项

<dependencies>
  <dependency>
    <groupId>org.apache.camel.kamelets</groupId>
    <artifactId>camel-kamelets-utils</artifactId>
    <version>4.8.5</version>
  </dependency>
  <dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifactId>camel-quarkus-core</artifactId>
  </dependency>
  <dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifactId>camel-quarkus-ftp</artifactId>
  </dependency>
  <dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifactId>camel-quarkus-kamelet</artifactId>
  </dependency>
</dependencies>
Copy to Clipboard Toggle word wrap

25.3. 使用方法

25.3.1. Camel JBang 用法

25.3.1.1. JBang 的先决条件
  • 安装 JBang
  • 您已执行以下命令:

    jbang app install camel@apache/camel
    Copy to Clipboard Toggle word wrap
25.3.1.2. 使用 JBang 运行路由

假设有一个名为 route.yaml 的文件,其中包含此内容:

- route:
    from:
      uri: "kamelet:timer-source"
      parameters:
        period: 10000
        message: 'test'
      steps:
        - to:
            uri: "kamelet:log-sink"
Copy to Clipboard Toggle word wrap

现在,您可以直接使用以下命令运行它。

camel run route.yaml
Copy to Clipboard Toggle word wrap

25.3.2. Knative Source

您可以通过将 ftp-source Kamelet 绑定到 Knative 对象来使用 ftp-source Kamelet 作为 Knative 源。

ftp-source-binding.yaml

apiVersion: camel.apache.org/v1
kind: Pipe
metadata:
  name: ftp-source-binding
spec:
  source:
    ref:
      kind: Kamelet
      apiVersion: camel.apache.org/v1
      name: ftp-source
    properties:
      connectionHost: "The Connection Host"
      directoryName: "The Directory Name"
      password: "The Password"
      username: "The Username"
  sink:
    ref:
      kind: Channel
      apiVersion: messaging.knative.dev/v1
      name: mychannel
Copy to Clipboard Toggle word wrap

25.3.3. Kafka 源

您可以通过将 ftp-source Kamelet 绑定到 Kafka 主题来使用 ftp-source Kamelet 作为 Kafka 源。

ftp-source-binding.yaml

apiVersion: camel.apache.org/v1
kind: Pipe
metadata:
  name: ftp-source-binding
spec:
  source:
    ref:
      kind: Kamelet
      apiVersion: camel.apache.org/v1
      name: ftp-source
    properties:
      connectionHost: "The Connection Host"
      directoryName: "The Directory Name"
      password: "The Password"
      username: "The Username"
  sink:
    ref:
      kind: KafkaTopic
      apiVersion: kafka.strimzi.io/v1beta1
      name: my-topic
Copy to Clipboard Toggle word wrap

25.4. kamelets 源文件

https://github.com/jboss-fuse/camel-kamelets/blob/camel-kamelets-4.10.3-branch/kamelets/ftp-source.kamelet.yaml

第 26 章 FTPS Sink

将数据发送到 FTPS 服务器。

在标头中,您可以设置 file / ce-file 属性来指定要上传的文件名。

如果您没有在标头中设置属性,则 Kamelet 将交换 ID 用于文件名。

26.1. 配置选项

下表总结了可用于 ftps-sink Kamelet 的配置选项:

Expand
属性名称描述类型默认示例

connectionHost *

连接主机

FTP 服务器的主机名。

字符串

  

connectionPort *

连接端口

FTP 服务器的端口。

字符串

21

 

directoryName *

目录名称

起始目录。

字符串

  

password *

密码

用于访问 FTP 服务器的密码。

字符串

  

username *

用户名

用于访问 FTP 服务器的用户名。

字符串

  

autoCreate

autocreate Missing directory

自动创建文件应写入的目录。

布尔值

True

 

二进制

二进制

指定文件传输模式 BINARY 或 ASCII。默认为 ASCII (false)。

布尔值

False

 

fileExist

文件存储

指定在文件已存在时 Kamelet 的行为方式。

字符串

override

 

passiveMode

被动模式

设置被动模式连接。

布尔值

False

 

* = 标记为星号的字段 是必需的

26.2. 依赖项

26.2.1. Quarkus 依赖项

<dependencies>
  <dependency>
    <groupId>org.apache.camel.kamelets</groupId>
    <artifactId>camel-kamelets-utils</artifactId>
    <version>4.8.5</version>
  </dependency>
  <dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifactId>camel-quarkus-core</artifactId>
  </dependency>
  <dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifactId>camel-quarkus-ftp</artifactId>
  </dependency>
  <dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifactId>camel-quarkus-kamelet</artifactId>
  </dependency>
</dependencies>
Copy to Clipboard Toggle word wrap

26.3. 使用方法

26.3.1. Camel JBang 用法

26.3.1.1. JBang 的先决条件
  • 安装 JBang
  • 您已执行以下命令:

    jbang app install camel@apache/camel
    Copy to Clipboard Toggle word wrap
26.3.1.2. 使用 JBang 运行路由

假设有一个名为 route.yaml 的文件,其中包含此内容:

- route:
    from:
      uri: "kamelet:timer-source"
      parameters:
        period: 10000
        message: 'test'
      steps:
        - to:
            uri: "kamelet:log-sink"
Copy to Clipboard Toggle word wrap

现在,您可以直接使用以下命令运行它。

camel run route.yaml
Copy to Clipboard Toggle word wrap

26.3.2. Knative Sink

您可以通过将 ftps-sink Kamelet 绑定到 Knative 对象来使用 ftps-sink Kamelet 作为 Knative sink。

ftps-sink-binding.yaml

apiVersion: camel.apache.org/v1
kind: Pipe
metadata:
  name: ftps-sink-binding
spec:
  source:
    ref:
      kind: Channel
      apiVersion: messaging.knative.dev/v1
      name: mychannel
  sink:
    ref:
      kind: Kamelet
      apiVersion: camel.apache.org/v1
      name: ftps-sink
    properties:
      connectionHost: "The Connection Host"
      directoryName: "The Directory Name"
      password: "The Password"
      username: "The Username"
Copy to Clipboard Toggle word wrap

26.3.3. Kafka Sink

您可以通过将 ftps-sink Kamelet 绑定到 Kafka 主题来使用 ftps-sink Kamelet 作为 Kafka sink。

ftps-sink-binding.yaml

apiVersion: camel.apache.org/v1
kind: Pipe
metadata:
  name: ftps-sink-binding
spec:
  source:
    ref:
      kind: KafkaTopic
      apiVersion: kafka.strimzi.io/v1beta1
      name: my-topic
  sink:
    ref:
      kind: Kamelet
      apiVersion: camel.apache.org/v1
      name: ftps-sink
    properties:
      connectionHost: "The Connection Host"
      directoryName: "The Directory Name"
      password: "The Password"
      username: "The Username"
Copy to Clipboard Toggle word wrap

26.4. kamelets 源文件

https://github.com/jboss-fuse/camel-kamelets/blob/camel-kamelets-4.10.3-branch/kamelets/ftps-sink.kamelet.yaml

第 27 章 FTPS Source

从 FTPS 服务器接收数据。

27.1. 配置选项

下表总结了可用于 ftps-source Kamelet 的配置选项:

Expand
属性名称描述类型默认示例

connectionHost *

连接主机

FTPS 服务器的主机名。

字符串

  

connectionPort *

连接端口

FTPS 服务器的端口。

字符串

21

 

directoryName *

目录名称

起始目录。

字符串

  

password *

密码

用于访问 FTPS 服务器的密码。

字符串

  

username *

用户名

用于访问 FTPS 服务器的用户名。

字符串

  

autoCreate

autocreate Missing directory

自动创建起始目录。

布尔值

True

 

二进制

二进制

指定文件传输模式 BINARY 或 ASCII。默认为 ASCII (false)。

布尔值

False

 

delete

删除

如果为 true,则在成功处理后会删除该文件。

布尔值

False

 

idempotent

idempotency

跳过已处理的文件。

布尔值

True

 

passiveMode

被动模式

指定使用被动模式连接。

布尔值

False

 

递归

递归

如果一个目录,也查找所有子目录中的文件。

布尔值

False

 

* = 标记为星号的字段 是必需的

27.2. 依赖项

27.2.1. Quarkus 依赖项

<dependencies>
  <dependency>
    <groupId>org.apache.camel.kamelets</groupId>
    <artifactId>camel-kamelets-utils</artifactId>
    <version>4.8.5</version>
  </dependency>
  <dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifactId>camel-quarkus-core</artifactId>
  </dependency>
  <dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifactId>camel-quarkus-ftp</artifactId>
  </dependency>
  <dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifactId>camel-quarkus-kamelet</artifactId>
  </dependency>
</dependencies>
Copy to Clipboard Toggle word wrap

27.3. 使用方法

27.3.1. Camel JBang 用法

27.3.1.1. JBang 的先决条件
  • 安装 JBang
  • 您已执行以下命令:

    jbang app install camel@apache/camel
    Copy to Clipboard Toggle word wrap
27.3.1.2. 使用 JBang 运行路由

假设有一个名为 route.yaml 的文件,其中包含此内容:

- route:
    from:
      uri: "kamelet:timer-source"
      parameters:
        period: 10000
        message: 'test'
      steps:
        - to:
            uri: "kamelet:log-sink"
Copy to Clipboard Toggle word wrap

现在,您可以直接使用以下命令运行它。

camel run route.yaml
Copy to Clipboard Toggle word wrap

27.3.2. Knative Source

您可以通过将 ftps-source Kamelet 绑定到 Knative 对象来使用 ftps-source Kamelet 作为 Knative 源。

ftps-source-binding.yaml

apiVersion: camel.apache.org/v1
kind: Pipe
metadata:
  name: ftps-source-binding
spec:
  source:
    ref:
      kind: Kamelet
      apiVersion: camel.apache.org/v1
      name: ftps-source
    properties:
      connectionHost: "The Connection Host"
      directoryName: "The Directory Name"
      password: "The Password"
      username: "The Username"
  sink:
    ref:
      kind: Channel
      apiVersion: messaging.knative.dev/v1
      name: mychannel
Copy to Clipboard Toggle word wrap

27.3.3. Kafka 源

您可以通过将 ftps-source Kamelet 绑定到 Kafka 主题来将 ftps-source Kamelet 用作 Kafka 源。

ftps-source-binding.yaml

apiVersion: camel.apache.org/v1
kind: Pipe
metadata:
  name: ftps-source-binding
spec:
  source:
    ref:
      kind: Kamelet
      apiVersion: camel.apache.org/v1
      name: ftps-source
    properties:
      connectionHost: "The Connection Host"
      directoryName: "The Directory Name"
      password: "The Password"
      username: "The Username"
  sink:
    ref:
      kind: KafkaTopic
      apiVersion: kafka.strimzi.io/v1beta1
      name: my-topic
Copy to Clipboard Toggle word wrap

27.4. kamelets 源文件

https://github.com/jboss-fuse/camel-kamelets/blob/camel-kamelets-4.10.3-branch/kamelets/ftps-source.kamelet.yaml

第 28 章 具有标头过滤器操作

根据一个标头的存在过滤消息。

28.1. 配置选项

下表总结了 has-header-filter-action Kamelet 可用的选项:

Expand
属性名称描述类型默认示例

name *

标头名称

要评估的标头名称。标头名称必须由源 Kamelet 传递。对于 Knative,标头的名称需要一个 CloudEvent (ce-)前缀。

字符串

 

headerName

value

标头值

与标头进行比较的可选标头值

字符串

 

headerValue

* = 标记为星号的字段 是必需的

28.2. 依赖项

28.2.1. Quarkus 依赖项

<dependencies>
  <dependency>
    <groupId>org.apache.camel.kamelets</groupId>
    <artifactId>camel-kamelets-utils</artifactId>
    <version>4.8.5</version>
  </dependency>
  <dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifactId>camel-quarkus-core</artifactId>
  </dependency>
  <dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifactId>camel-quarkus-has-header-filter-action</artifactId>
  </dependency>
  <dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifactId>camel-quarkus-kamelet</artifactId>
  </dependency>
</dependencies>
Copy to Clipboard Toggle word wrap

28.3. 使用方法

28.3.1. Camel JBang 用法

28.3.1.1. JBang 的先决条件
  • 安装 JBang
  • 您已执行以下命令:

    jbang app install camel@apache/camel
    Copy to Clipboard Toggle word wrap
28.3.1.2. 使用 JBang 运行路由

假设有一个名为 route.yaml 的文件,其中包含此内容:

- route:
    from:
      uri: "kamelet:timer-source"
      parameters:
        period: 10000
        message: 'test'
      steps:
        - to:
            uri: "kamelet:log-sink"
Copy to Clipboard Toggle word wrap

现在,您可以直接使用以下命令运行它。

camel run route.yaml
Copy to Clipboard Toggle word wrap

28.3.2. Knative Action

您可以使用 has-header-filter-action Kamelet 作为 Knative 绑定中的中间步骤。

has-header-filter-action-binding.yaml

apiVersion: camel.apache.org/v1
kind: Pipe
metadata:
  name: has-header-filter-action-binding
spec:
  source:
    ref:
      kind: Kamelet
      apiVersion: camel.apache.org/v1
      name: timer-source
    properties:
      message: "Hello"
  steps:
  - ref:
      kind: Kamelet
      apiVersion: camel.apache.org/v1
      name: insert-header-action
    properties:
      name: "my-header"
      value: "my-value"
  - ref:
      kind: Kamelet
      apiVersion: camel.apache.org/v1
      name: has-header-filter-action
    properties:
      name: "my-header"
  sink:
    ref:
      kind: Channel
      apiVersion: messaging.knative.dev/v1
      name: mychannel
Copy to Clipboard Toggle word wrap

28.3.3. Kafka 操作

您可以使用 has-header-filter-action Kamelet 作为 Kafka 绑定中的中间步骤。

has-header-filter-action-binding.yaml

apiVersion: camel.apache.org/v1
kind: Pipe
metadata:
  name: has-header-filter-action-binding
spec:
  source:
    ref:
      kind: Kamelet
      apiVersion: camel.apache.org/v1
      name: timer-source
    properties:
      message: "Hello"
  steps:
  - ref:
      kind: Kamelet
      apiVersion: camel.apache.org/v1
      name: insert-header-action
    properties:
      name: "my-header"
      value: "my-value"
  - ref:
      kind: Kamelet
      apiVersion: camel.apache.org/v1
      name: has-header-filter-action
    properties:
      name: "my-header"
  sink:
    ref:
      kind: KafkaTopic
      apiVersion: kafka.strimzi.io/v1beta1
      name: my-topic
Copy to Clipboard Toggle word wrap

28.4. kamelets 源文件

https://github.com/jboss-fuse/camel-kamelets/blob/camel-kamelets-4.10.3-branch/kamelets/has-header-filter-action.kamelet.yaml

第 29 章 Hoist 字段操作

在单个字段中嵌套数据。

29.1. 配置选项

下表总结了 hoist-field-action Kamelet 可用的选项:

Expand
属性名称描述类型默认示例

字段 *

字段

包含事件的字段名称。

字符串

  

* = 标记为星号的字段 是必需的

29.2. 依赖项

29.2.1. Quarkus 依赖项

<dependencies>
  <dependency>
    <groupId>org.apache.camel.kamelets</groupId>
    <artifactId>camel-kamelets-utils</artifactId>
    <version>4.8.5</version>
  </dependency>
  <dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifactId>camel-quarkus-core</artifactId>
  </dependency>
  <dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifactId>camel-quarkus-jackson</artifactId>
  </dependency>
  <dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifactId>camel-quarkus-kafka</artifactId>
  </dependency>
  <dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifactId>camel-quarkus-kamelet</artifactId>
  </dependency>
</dependencies>
Copy to Clipboard Toggle word wrap

29.3. 使用方法

29.3.1. Camel JBang 用法

29.3.1.1. JBang 的先决条件
  • 安装 JBang
  • 您已执行以下命令:

    jbang app install camel@apache/camel
    Copy to Clipboard Toggle word wrap
29.3.1.2. 使用 JBang 运行路由

假设有一个名为 route.yaml 的文件,其中包含此内容:

- route:
    from:
      uri: "kamelet:timer-source"
      parameters:
        period: 10000
        message: 'test'
      steps:
        - to:
            uri: "kamelet:log-sink"
Copy to Clipboard Toggle word wrap

现在,您可以直接使用以下命令运行它。

camel run route.yaml
Copy to Clipboard Toggle word wrap

29.3.2. Knative Action

您可以使用 hoist-field-action Kamelet 作为 Knative 绑定中的中间步骤。

hoist-field-action-binding.yaml

apiVersion: camel.apache.org/v1
kind: Pipe
metadata:
  name: hoist-field-action-binding
spec:
  source:
    ref:
      kind: Kamelet
      apiVersion: camel.apache.org/v1
      name: timer-source
    properties:
      message: "Hello"
  steps:
  - ref:
      kind: Kamelet
      apiVersion: camel.apache.org/v1
      name: hoist-field-action
    properties:
      field: "The Field"
  sink:
    ref:
      kind: Channel
      apiVersion: messaging.knative.dev/v1
      name: mychannel
Copy to Clipboard Toggle word wrap

29.3.3. Kafka 操作

您可以使用 hoist-field-action Kamelet 作为 Kafka 绑定中的中间步骤。

hoist-field-action-binding.yaml

apiVersion: camel.apache.org/v1
kind: Pipe
metadata:
  name: hoist-field-action-binding
spec:
  source:
    ref:
      kind: Kamelet
      apiVersion: camel.apache.org/v1
      name: timer-source
    properties:
      message: "Hello"
  steps:
  - ref:
      kind: Kamelet
      apiVersion: camel.apache.org/v1
      name: hoist-field-action
    properties:
      field: "The Field"
  sink:
    ref:
      kind: KafkaTopic
      apiVersion: kafka.strimzi.io/v1beta1
      name: my-topic
Copy to Clipboard Toggle word wrap

29.4. kamelets 源文件

https://github.com/jboss-fuse/camel-kamelets/blob/camel-kamelets-4.10.3-branch/kamelets/hoist-field-action.kamelet.yaml

第 30 章 HTTP Sink

将数据转发到 HTTP 或 HTTPS 端点。

30.1. 配置选项

下表总结了 http-sink Kamelet 可用的选项:

Expand
属性名称描述类型默认示例

url *

URL

要发送数据的 URL。

字符串

 

https://my-service/path

method

方法

要使用的 HTTP 方法。

字符串

POST

 

* = 标记为星号的字段 是必需的

30.2. 依赖项

30.2.1. Quarkus 依赖项

<dependencies>
  <dependency>
    <groupId>org.apache.camel.kamelets</groupId>
    <artifactId>camel-kamelets-utils</artifactId>
    <version>4.8.5</version>
  </dependency>
  <dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifactId>camel-quarkus-core</artifactId>
  </dependency>
  <dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifactId>camel-quarkus-http</artifactId>
  </dependency>
  <dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifactId>camel-quarkus-kamelet</artifactId>
  </dependency>
</dependencies>
Copy to Clipboard Toggle word wrap

30.3. 使用方法

30.3.1. Camel JBang 用法

30.3.1.1. JBang 的先决条件
  • 安装 JBang
  • 您已执行以下命令:

    jbang app install camel@apache/camel
    Copy to Clipboard Toggle word wrap
30.3.1.2. 使用 JBang 运行路由

假设有一个名为 route.yaml 的文件,其中包含此内容:

- route:
    from:
      uri: "kamelet:timer-source"
      parameters:
        period: 10000
        message: 'test'
      steps:
        - to:
            uri: "kamelet:log-sink"
Copy to Clipboard Toggle word wrap

现在,您可以直接使用以下命令运行它。

camel run route.yaml
Copy to Clipboard Toggle word wrap

30.3.2. Knative Sink

您可以通过将它绑定到 Knative 对象来使用 http-sink Kamelet 作为 Knative sink。

http-sink-binding.yaml

apiVersion: camel.apache.org/v1
kind: Pipe
metadata:
  name: http-sink-binding
spec:
  source:
    ref:
      kind: Channel
      apiVersion: messaging.knative.dev/v1
      name: mychannel
  sink:
    ref:
      kind: Kamelet
      apiVersion: camel.apache.org/v1
      name: http-sink
    properties:
      url: "https://my-service/path"
Copy to Clipboard Toggle word wrap

30.3.3. Kafka Sink

您可以通过将 http-sink Kamelet 绑定到 Kafka 主题来使用 http-sink Kamelet 作为 Kafka sink。

http-sink-binding.yaml

apiVersion: camel.apache.org/v1
kind: Pipe
metadata:
  name: http-sink-binding
spec:
  source:
    ref:
      kind: KafkaTopic
      apiVersion: kafka.strimzi.io/v1beta1
      name: my-topic
  sink:
    ref:
      kind: Kamelet
      apiVersion: camel.apache.org/v1
      name: http-sink
    properties:
      url: "https://my-service/path"
Copy to Clipboard Toggle word wrap

30.4. kamelets 源文件

https://github.com/jboss-fuse/camel-kamelets/blob/camel-kamelets-4.10.3-branch/kamelets/http-sink.kamelet.yaml

第 31 章 插入字段操作

将带有简单语言解析值的自定义字段添加到传输中的消息。

insert 字段操作需要一个 application/json 内容类型。

例如,如果您有一个类似 { "foo":"John", "bar":30 } 的对象,并且您的操作使用 field 元素配置,并且您的操作使用 field 元素 配置,则结果为 { "foo":"John", "bar":30, "element":" hello " }

31.1. 配置选项

下表总结了 insert-field-action Kamelet 可用的选项:

Expand
属性名称描述类型默认示例

字段 *

字段

要添加的字段的名称。

字符串

  

value *

value

字段的值。

字符串

  

* = 标记为星号的字段 是必需的

31.2. 依赖项

31.2.1. Quarkus 依赖项

<dependencies>
  <dependency>
    <groupId>org.apache.camel.kamelets</groupId>
    <artifactId>camel-kamelets-utils</artifactId>
    <version>4.8.5</version>
  </dependency>
  <dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifactId>camel-quarkus-core</artifactId>
  </dependency>
  <dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifactId>camel-quarkus-jackson</artifactId>
  </dependency>
  <dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifactId>camel-quarkus-kafka</artifactId>
  </dependency>
  <dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifactId>camel-quarkus-kamelet</artifactId>
  </dependency>
</dependencies>
Copy to Clipboard Toggle word wrap

31.3. 使用方法

31.3.1. Camel JBang 用法

31.3.1.1. JBang 的先决条件
  • 安装 JBang
  • 您已执行以下命令:

    jbang app install camel@apache/camel
    Copy to Clipboard Toggle word wrap
31.3.1.2. 使用 JBang 运行路由

假设有一个名为 route.yaml 的文件,其中包含此内容:

- route:
    from:
      uri: "kamelet:timer-source"
      parameters:
        period: 10000
        message: 'test'
      steps:
        - to:
            uri: "kamelet:log-sink"
Copy to Clipboard Toggle word wrap

现在,您可以直接使用以下命令运行它。

camel run route.yaml
Copy to Clipboard Toggle word wrap

31.3.2. Knative Action

您可以使用 insert-field-action Kamelet 作为 Knative 绑定中的中间步骤。

insert-field-action-binding.yaml

apiVersion: camel.apache.org/v1
kind: Pipe
metadata:
  name: insert-field-action-binding
spec:
  source:
    ref:
      kind: Kamelet
      apiVersion: camel.apache.org/v1
      name: timer-source
    properties:
      message: '{"foo":"John"}'
  steps:
  - ref:
      kind: Kamelet
      apiVersion: camel.apache.org/v1
      name: json-deserialize-action
  - ref:
      kind: Kamelet
      apiVersion: camel.apache.org/v1
      name: insert-field-action
    properties:
      field: "The Field"
      value: "The Value"
  sink:
    ref:
      kind: Channel
      apiVersion: messaging.knative.dev/v1
      name: mychannel
Copy to Clipboard Toggle word wrap

31.3.3. Kafka 操作

您可以使用 insert-field-action Kamelet 作为 Kafka 绑定中的中间步骤。

insert-field-action-binding.yaml

apiVersion: camel.apache.org/v1
kind: Pipe
metadata:
  name: insert-field-action-binding
spec:
  source:
    ref:
      kind: Kamelet
      apiVersion: camel.apache.org/v1
      name: timer-source
    properties:
      message: '{"foo":"John"}'
  steps:
  - ref:
      kind: Kamelet
      apiVersion: camel.apache.org/v1
      name: json-deserialize-action
  - ref:
      kind: Kamelet
      apiVersion: camel.apache.org/v1
      name: insert-field-action
    properties:
      field: "The Field"
      value: "The Value"
  sink:
    ref:
      kind: KafkaTopic
      apiVersion: kafka.strimzi.io/v1beta1
      name: my-topic
Copy to Clipboard Toggle word wrap

31.4. kamelets 源文件

https://github.com/jboss-fuse/camel-kamelets/blob/camel-kamelets-4.10.3-branch/kamelets/insert-field-action.kamelet.yaml

第 32 章 插入标头操作

向传输中的消息添加一个带有简单语言解析表达式的标头。

32.1. 配置选项

下表总结了 insert-header-action Kamelet 可用的选项:

Expand
属性名称描述类型默认示例

name *

名称

要添加的标头的名称。对于 Knative,标头的名称需要一个 CloudEvent (ce-)前缀。

字符串

 

headerName

value *

value

要添加的标头值

字符串

  

* = 标记为星号的字段 是必需的

32.2. 依赖项

32.2.1. Quarkus 依赖项

<dependencies>
  <dependency>
    <groupId>org.apache.camel.kamelets</groupId>
    <artifactId>camel-kamelets-utils</artifactId>
    <version>4.8.5</version>
  </dependency>
  <dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifactId>camel-quarkus-core</artifactId>
  </dependency>
  <dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifactId>camel-quarkus-insert-header-action</artifactId>
  </dependency>
  <dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifactId>camel-quarkus-kamelet</artifactId>
  </dependency>
</dependencies>
Copy to Clipboard Toggle word wrap

32.3. 使用方法

32.3.1. Camel JBang 用法

32.3.1.1. JBang 的先决条件
  • 安装 JBang
  • 您已执行以下命令:

    jbang app install camel@apache/camel
    Copy to Clipboard Toggle word wrap
32.3.1.2. 使用 JBang 运行路由

假设有一个名为 route.yaml 的文件,其中包含此内容:

- route:
    from:
      uri: "kamelet:timer-source"
      parameters:
        period: 10000
        message: 'test'
      steps:
        - to:
            uri: "kamelet:log-sink"
Copy to Clipboard Toggle word wrap

现在,您可以直接使用以下命令运行它。

camel run route.yaml
Copy to Clipboard Toggle word wrap

32.3.2. Knative Action

您必须使用 insert-header-action Kamelet 作为 Knative 绑定中的中间步骤。

insert-header-action-binding.yaml

apiVersion: camel.apache.org/v1
kind: Pipe
metadata:
  name: insert-header-action-binding
spec:
  source:
    ref:
      kind: Kamelet
      apiVersion: camel.apache.org/v1
      name: timer-source
    properties:
      message: "Hello"
  steps:
  - ref:
      kind: Kamelet
      apiVersion: camel.apache.org/v1
      name: insert-header-action
    properties:
      name: "The Name"
      value: "The Value"
  sink:
    ref:
      kind: Channel
      apiVersion: messaging.knative.dev/v1
      name: mychannel
Copy to Clipboard Toggle word wrap

32.3.3. Kafka 操作

您必须在 Kafka 绑定中使用 insert-header-action Kamelet 作为中间步骤。

insert-header-action-binding.yaml

apiVersion: camel.apache.org/v1
kind: Pipe
metadata:
  name: insert-header-action-binding
spec:
  source:
    ref:
      kind: Kamelet
      apiVersion: camel.apache.org/v1
      name: timer-source
    properties:
      message: "Hello"
  steps:
  - ref:
      kind: Kamelet
      apiVersion: camel.apache.org/v1
      name: insert-header-action
    properties:
      name: "The Name"
      value: "The Value"
  sink:
    ref:
      kind: KafkaTopic
      apiVersion: kafka.strimzi.io/v1beta1
      name: my-topic
Copy to Clipboard Toggle word wrap

32.4. kamelets 源文件

https://github.com/jboss-fuse/camel-kamelets/blob/camel-kamelets-4.10.3-branch/kamelets/insert-header-action.kamelet.yaml

第 33 章 是 Tombstone Filter Action

根据正文的存在或不存在过滤。

33.1. 配置选项

is-tombstone-filter-action Kamelet 没有任何选项。

33.2. 依赖项

33.2.1. Quarkus 依赖项

<dependencies>
  <dependency>
    <groupId>org.apache.camel.kamelets</groupId>
    <artifactId>camel-kamelets-utils</artifactId>
    <version>4.8.5</version>
  </dependency>
  <dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifactId>camel-quarkus-core</artifactId>
  </dependency>
  <dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifactId>camel-quarkus-kamelet</artifactId>
  </dependency>
</dependencies>
Copy to Clipboard Toggle word wrap

33.3. 使用方法

33.3.1. Camel JBang 用法

33.3.1.1. JBang 的先决条件
  • 安装 JBang
  • 您已执行以下命令:

    jbang app install camel@apache/camel
    Copy to Clipboard Toggle word wrap
33.3.1.2. 使用 JBang 运行路由

假设有一个名为 route.yaml 的文件,其中包含此内容:

- route:
    from:
      uri: "kamelet:timer-source"
      parameters:
        period: 10000
        message: 'test'
      steps:
        - to:
            uri: "kamelet:log-sink"
Copy to Clipboard Toggle word wrap

现在,您可以直接使用以下命令运行它。

camel run route.yaml
Copy to Clipboard Toggle word wrap

33.3.2. Knative Action

您可以使用 is-tombstone-filter-action Kamelet 作为 Knative 绑定中的中间步骤。

is-tombstone-filter-action-binding.yaml

apiVersion: camel.apache.org/v1
kind: Pipe
metadata:
  name: is-tombstone-filter-action-binding
spec:
  source:
    ref:
      kind: Kamelet
      apiVersion: camel.apache.org/v1
      name: timer-source
    properties:
      message: "Hello"
  steps:
  - ref:
      kind: Kamelet
      apiVersion: camel.apache.org/v1
      name: is-tombstone-filter-action
  sink:
    ref:
      kind: Channel
      apiVersion: messaging.knative.dev/v1
      name: mychannel
Copy to Clipboard Toggle word wrap

33.3.3. Kafka 操作

您可以使用 is-tombstone-filter-action Kamelet 作为 Kafka 绑定中的中间步骤。

is-tombstone-filter-action-binding.yaml

apiVersion: camel.apache.org/v1
kind: Pipe
metadata:
  name: is-tombstone-filter-action-binding
spec:
  source:
    ref:
      kind: Kamelet
      apiVersion: camel.apache.org/v1
      name: timer-source
    properties:
      message: "Hello"
  steps:
  - ref:
      kind: Kamelet
      apiVersion: camel.apache.org/v1
      name: is-tombstone-filter-action
  sink:
    ref:
      kind: KafkaTopic
      apiVersion: kafka.strimzi.io/v1beta1
      name: my-topic
Copy to Clipboard Toggle word wrap

33.4. kamelets 源文件

https://github.com/jboss-fuse/camel-kamelets/blob/camel-kamelets-4.10.3-branch/kamelets/is-tombstone-filter-action.kamelet.yaml

第 34 章 Jira Add Comment Sink

在 JIRA 中的现有问题中添加一个新的注释。

Kamelet 需要设置以下标头:

  • issueKey / ce-issueKey: 作为问题代码。

注释在消息的正文中设置。

要进行身份验证,必须定义用户名/密码或个人令牌。我们建议使用个人令牌,因为它是访问 JIRA 的一种更安全的方法。

34.1. 配置选项

下表总结了 jira-add-comment-sink Kamelet 可用的选项:

Expand
属性名称描述类型默认示例

jiraUrl *

Jira URL

Jira 实例的 URL

字符串

 

http://my_jira.com:8081

password

密码

用于访问 JIRA 的密码

字符串

  

personal-token

个人访问令牌

个人访问令牌

字符串

  

username

用户名

用于访问 JIRA 的用户名

字符串

  

* = 标记为星号的字段 是必需的

34.2. 依赖项

34.2.1. Quarkus 依赖项

<dependencies>
  <dependency>
    <groupId>org.apache.camel.kamelets</groupId>
    <artifactId>camel-kamelets-utils</artifactId>
    <version>4.8.5</version>
  </dependency>
  <dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifactId>camel-quarkus-core</artifactId>
  </dependency>
  <dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifactId>camel-quarkus-jackson</artifactId>
  </dependency>
  <dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifactId>camel-quarkus-jira</artifactId>
  </dependency>
  <dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifactId>camel-quarkus-kamelet</artifactId>
  </dependency>
</dependencies>
Copy to Clipboard Toggle word wrap

34.3. 使用方法

34.3.1. Camel JBang 用法

34.3.1.1. JBang 的先决条件
  • 安装 JBang
  • 您已执行以下命令:

    jbang app install camel@apache/camel
    Copy to Clipboard Toggle word wrap
34.3.1.2. 使用 JBang 运行路由

假设有一个名为 route.yaml 的文件,其中包含此内容:

- route:
    from:
      uri: "kamelet:timer-source"
      parameters:
        period: 10000
        message: 'test'
      steps:
        - to:
            uri: "kamelet:log-sink"
Copy to Clipboard Toggle word wrap

现在,您可以直接使用以下命令运行它。

camel run route.yaml
Copy to Clipboard Toggle word wrap

34.3.2. Knative Sink

您可以通过将 jira-add-comment-sink Kamelet 绑定到 Knative 对象来使用 jira-add-comment-sink Kamelet。

jira-add-comment-sink-binding.yaml

apiVersion: camel.apache.org/v1
kind: Pipe
metadata:
  name: jira-add-comment-sink-binding
spec:
  source:
    ref:
      kind: KafkaTopic
      apiVersion: kafka.strimzi.io/v1beta1
      name: my-topic
  steps:
  - ref:
      kind: Kamelet
      apiVersion: camel.apache.org/v1
      name: insert-header-action
    properties:
      name: "issueKey"
      value: "MYP-167"
  sink:
    ref:
      kind: Channel
      apiVersion: messaging.knative.dev/v1
      name: mychannel
    properties:
      jiraUrl: "jira server url"
      username: "username"
      password: "password"
Copy to Clipboard Toggle word wrap

34.3.3. Kafka Sink

您可以通过将 jira-add-comment-sink Kamelet 绑定到 Kafka 主题,来使用 jira-add-comment-sink Kamelet 作为 Kafka sink。

jira-add-comment-sink-binding.yaml

apiVersion: camel.apache.org/v1
kind: Pipe
metadata:
  name: jira-add-comment-sink-binding
spec:
  source:
    ref:
      kind: KafkaTopic
      apiVersion: kafka.strimzi.io/v1beta1
      name: my-topic
  steps:
  - ref:
      kind: Kamelet
      apiVersion: camel.apache.org/v1
      name: insert-header-action
    properties:
      name: "issueKey"
      value: "MYP-167"
  sink:
    ref:
      kind: Kamelet
      apiVersion: camel.apache.org/v1
      name: jira-add-comment-sink
    properties:
      jiraUrl: "jira server url"
      username: "username"
      password: "password"
Copy to Clipboard Toggle word wrap

34.4. kamelets 源文件

https://github.com/jboss-fuse/camel-kamelets/blob/camel-kamelets-4.10.3-branch/kamelets/jira-add-comment-sink.kamelet.yaml

第 35 章 Jira Add Issue Sink

在 JIRA 中添加新问题。

Kamelet 需要设置以下标头:

  • projectKey / ce-projectKey: 作为 JIRA 项目密钥。
  • IssueTypeName / ce- issueTypeName : 作为问题类型的名称(例如: Bug、Enhancement)。
  • issueSummary / ce-issueSummary: 作为问题的标题或摘要。
  • IssueAssignee / ce-issueAssignee: 作为分配给问题的用户(可选)。
  • issuePriorityName / ce-issuePriorityName: 作为问题的优先级名称(例如:Critical、Blocker、Trivial)(可选)。
  • issueComponents / ce-issueComponents: 作为具有有效组件名称(可选)的字符串列表。
  • issueDescription / ce-issueDescription: 作为问题描述(可选)。

可从消息的正文设置问题描述,或者标头中的 issueDescription/ce-issueDescription,但正文具有优先权。

要进行身份验证,必须定义用户名/密码或个人令牌。我们建议使用个人令牌,因为它是访问 JIRA 的一种更安全的方法。

35.1. 配置选项

下表总结了 jira-add-issue-sink Kamelet 可用的选项:

Expand
属性名称描述类型默认示例

jiraUrl *

Jira URL

Jira 实例的 URL

字符串

 

http://my_jira.com:8081

password

密码

用于访问 JIRA 的密码

字符串

  

personal-token

个人访问令牌

个人访问令牌

字符串

  

username

用户名

用于访问 JIRA 的用户名

字符串

  

* = 标记为星号的字段 是必需的

35.2. 依赖项

35.2.1. Quarkus 依赖项

<dependencies>
  <dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifact>camel-quarkus-core</artifact>
  </dependency>
  <dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifact>camel-quarkus-jackson</artifact>
  </dependency>
  <dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifact>camel-quarkus-jira</artifact>
  </dependency>
  <dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifact>camel-quarkus-kamelet</artifact>
  </dependency>
  <dependency>
    <groupId>com.fasterxml.jackson.datatype</groupId>
    <artifact>jackson-datatype-joda</artifact>
    <version>2.12.5</version>
  </dependency>
  <dependency>
    <groupId>org.apache.camel.kamelets</groupId>
    <artifact>camel-kamelets-utils</artifact>
    <version>4.8.5</version>
  </dependency>
</dependencies>
Copy to Clipboard Toggle word wrap

35.3. 使用方法

35.3.1. Camel JBang 用法

35.3.1.1. JBang 的先决条件
  • 安装 JBang
  • 您已执行以下命令:

    jbang app install camel@apache/camel
    Copy to Clipboard Toggle word wrap
35.3.1.2. 使用 JBang 运行路由

假设有一个名为 route.yaml 的文件,其中包含此内容:

- route:
    from:
      uri: "kamelet:timer-source"
      parameters:
        period: 10000
        message: 'test'
      steps:
        - to:
            uri: "kamelet:log-sink"
Copy to Clipboard Toggle word wrap

现在,您可以直接使用以下命令运行它。

camel run route.yaml
Copy to Clipboard Toggle word wrap

35.3.2. Knative Sink

您可以通过将 jira-add-issue-sink Kamelet 绑定到 Knative 对象来使用 jira-add-issue-sink Kamelet。

jira-add-issue-sink-binding.yaml

apiVersion: camel.apache.org/v1
kind: Pipe
metadata:
  name: jira-add-issue-sink-binding
spec:
  source:
    ref:
      kind: KafkaTopic
      apiVersion: kafka.strimzi.io/v1beta1
      name: my-topic
  steps:
  - ref:
      kind: Kamelet
      apiVersion: camel.apache.org/v1
      name: insert-header-action
    properties:
      name: "projectKey"
      value: "MYP"
  - ref:
      kind: Kamelet
      apiVersion: camel.apache.org/v1
      name: insert-header-action
    properties:
      name: "issueTypeName"
      value: "Bug"
  - ref:
      kind: Kamelet
      apiVersion: camel.apache.org/v1
      name: insert-header-action
    properties:
      name: "issueSummary"
      value: "The issue summary"
  - ref:
      kind: Kamelet
      apiVersion: camel.apache.org/v1
      name: insert-header-action
    properties:
      name: "issuePriorityName"
      value: "Low"
  sink:
    ref:
      kind: Channel
      apiVersion: messaging.knative.dev/v1
      name: mychannel
    properties:
      jiraUrl: "jira server url"
      username: "username"
      password: "password"
Copy to Clipboard Toggle word wrap

35.3.3. Kafka Sink

您可以通过将 jira-add-issue-sink Kamelet 绑定到 Kafka 主题,使用 jira-add-issue-sink Kamelet。

jira-add-issue-sink-binding.yaml

apiVersion: camel.apache.org/v1
kind: Pipe
metadata:
  name: jira-add-issue-sink-binding
spec:
  source:
    ref:
      kind: KafkaTopic
      apiVersion: kafka.strimzi.io/v1beta1
      name: my-topic
  steps:
  - ref:
      kind: Kamelet
      apiVersion: camel.apache.org/v1
      name: insert-header-action
    properties:
      name: "projectKey"
      value: "MYP"
  - ref:
      kind: Kamelet
      apiVersion: camel.apache.org/v1
      name: insert-header-action
    properties:
      name: "issueTypeName"
      value: "Bug"
  - ref:
      kind: Kamelet
      apiVersion: camel.apache.org/v1
      name: insert-header-action
    properties:
      name: "issueSummary"
      value: "The issue summary"
  - ref:
      kind: Kamelet
      apiVersion: camel.apache.org/v1
      name: insert-header-action
    properties:
      name: "issuePriorityName"
      value: "Low"
  sink:
    ref:
      kind: Kamelet
      apiVersion: camel.apache.org/v1
      name: jira-add-issue-sink
    properties:
      jiraUrl: "jira server url"
      username: "username"
      password: "password"
Copy to Clipboard Toggle word wrap

35.4. kamelets 源文件

https://github.com/jboss-fuse/camel-kamelets/blob/camel-kamelets-4.10.3-branch/kamelets/jira-add-issue-sink.kamelet.yaml

第 36 章 Jira Transition Issue Sink

在 JIRA 中设置现有问题的新状态(转换为)。

Kamelet 需要设置以下标头:

  • issueKey / ce-issueKey: 作为问题唯一代码。
  • issueTransitionId / ce-issueTransitionId: 作为新状态(transition)代码。您应该仔细检查项目工作流,因为每个转换在转换前都有要检查的条件。

转换的注释在消息的正文中设置。

要进行身份验证,必须定义用户名/密码或个人令牌。我们建议使用个人令牌,因为它是访问 JIRA 的一种更安全的方法。

36.1. 配置选项

下表总结了 jira-transition-issue-sink Kamelet 可用的选项:

Expand
属性名称描述类型默认示例

jiraUrl *

Jira URL

Jira 实例的 URL

字符串

 

http://my_jira.com:8081

password

密码

用于访问 JIRA 的密码

字符串

  

personal-token

个人访问令牌

个人访问令牌

字符串

  

username

用户名

用于访问 JIRA 的用户名

字符串

  

* = 标记为星号的字段 是必需的

36.2. 依赖项

36.2.1. Quarkus 依赖项

<dependencies>
  <dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifact>camel-quarkus-core</artifact>
  </dependency>
  <dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifact>camel-quarkus-jackson</artifact>
  </dependency>
  <dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifact>camel-quarkus-jira</artifact>
  </dependency>
  <dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifact>camel-quarkus-kamelet</artifact>
  </dependency>
  <dependency>
    <groupId>com.fasterxml.jackson.datatype</groupId>
    <artifact>jackson-datatype-joda</artifact>
    <version>2.12.5</version>
  </dependency>
  <dependency>
    <groupId>org.apache.camel.kamelets</groupId>
    <artifact>camel-kamelets-utils</artifact>
    <version>4.8.5</version>
  </dependency>
</dependencies>
Copy to Clipboard Toggle word wrap

36.3. 使用方法

36.3.1. Camel JBang 用法

36.3.1.1. JBang 的先决条件
  • 安装 JBang
  • 您已执行以下命令:

    jbang app install camel@apache/camel
    Copy to Clipboard Toggle word wrap
36.3.1.2. 使用 JBang 运行路由

假设有一个名为 route.yaml 的文件,其中包含此内容:

- route:
    from:
      uri: "kamelet:timer-source"
      parameters:
        period: 10000
        message: 'test'
      steps:
        - to:
            uri: "kamelet:log-sink"
Copy to Clipboard Toggle word wrap

现在,您可以直接使用以下命令运行它。

camel run route.yaml
Copy to Clipboard Toggle word wrap

36.3.2. Knative Sink

您可以通过将 jira-transition-issue-sink Kamelet 绑定到 Knative 对象来使用 jira-transition-issue-sink Kamelet。

jira-transition-issue-sink-binding.yaml

apiVersion: camel.apache.org/v1
kind: Pipe
metadata:
  name: jira-transition-issue-sink-binding
spec:
  source:
    ref:
      kind: KafkaTopic
      apiVersion: kafka.strimzi.io/v1beta1
      name: my-topic
  steps:
  - ref:
      kind: Kamelet
      apiVersion: camel.apache.org/v1
      name: insert-header-action
    properties:
      name: "issueTransitionId"
      value: 701
  - ref:
      kind: Kamelet
      apiVersion: camel.apache.org/v1
      name: insert-header-action
    properties:
      name: "issueKey"
      value: "MYP-162"
  sink:
    ref:
      kind: Channel
      apiVersion: messaging.knative.dev/v1
      name: mychannel
    properties:
      jiraUrl: "jira server url"
      username: "username"
      password: "password"
Copy to Clipboard Toggle word wrap

36.3.3. Kafka Sink

您可以通过将它绑定到 Kafka 主题,使用 jira-transition-issue-sink Kamelet 作为 Kafka sink。

jira-transition-issue-sink-binding.yaml

apiVersion: camel.apache.org/v1
kind: Pipe
metadata:
  name: jira-transition-issue-sink-binding
spec:
  source:
    ref:
      kind: KafkaTopic
      apiVersion: kafka.strimzi.io/v1beta1
      name: my-topic
  steps:
  - ref:
      kind: Kamelet
      apiVersion: camel.apache.org/v1
      name: insert-header-action
    properties:
      name: "issueTransitionId"
      value: 701
  - ref:
      kind: Kamelet
      apiVersion: camel.apache.org/v1
      name: insert-header-action
    properties:
      name: "issueKey"
      value: "MYP-162"
  sink:
    ref:
      kind: Kamelet
      apiVersion: camel.apache.org/v1
      name: jira-transition-issue-sink
    properties:
      jiraUrl: "jira server url"
      username: "username"
      password: "password"
Copy to Clipboard Toggle word wrap

36.4. kamelets 源文件

https://github.com/jboss-fuse/camel-kamelets/blob/camel-kamelets-4.10.3-branch/kamelets/jira-transition-issue-sink.kamelet.yaml

第 37 章 Jira Update Issue Sink

更新 JIRA 中现有问题的字段。

Kamelet 需要设置以下标头:

  • issueKey / ce-issueKey: 作为 JIRA 中的问题代码。
  • IssueTypeName / ce- issueTypeName : 作为问题类型的名称(例如: Bug、Enhancement)。
  • issueSummary / ce-issueSummary: 作为问题的标题或摘要。
  • IssueAssignee / ce-issueAssignee: 作为分配给问题的用户(可选)。
  • issuePriorityName / ce-issuePriorityName: 作为问题的优先级名称(例如:Critical、Blocker、Trivial)(可选)。
  • issueComponents / ce-issueComponents: 作为具有有效组件名称(可选)的字符串列表。
  • issueDescription / ce-issueDescription: 作为问题描述(可选)。

可从消息的正文设置问题描述,或者标头中的 issueDescription/ce-issueDescription,但正文具有优先权。

要进行身份验证,必须定义用户名/密码或个人令牌。我们建议使用个人令牌,因为它是访问 JIRA 的一种更安全的方法。

37.1. 配置选项

下表总结了 jira-update-issue-sink Kamelet 可用的选项:

Expand
属性名称描述类型默认示例

jiraUrl *

Jira URL

Jira 实例的 URL

字符串

 

http://my_jira.com:8081

password

密码

用于访问 JIRA 的密码

字符串

  

personal-token

个人访问令牌

个人访问令牌

字符串

  

username

用户名

用于访问 JIRA 的用户名

字符串

  

* = 标记为星号的字段 是必需的

37.2. 依赖项

37.2.1. Quarkus 依赖项

<dependencies>
  <dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifact>camel-quarkus-core</artifact>
  </dependency>
  <dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifact>camel-quarkus-jackson</artifact>
  </dependency>
  <dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifact>camel-quarkus-jira</artifact>
  </dependency>
  <dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifact>camel-quarkus-kamelet</artifact>
  </dependency>
  <dependency>
    <groupId>com.fasterxml.jackson.datatype</groupId>
    <artifact>jackson-datatype-joda</artifact>
    <version>2.12.5</version>
  </dependency>
  <dependency>
    <groupId>org.apache.camel.kamelets</groupId>
    <artifact>camel-kamelets-utils</artifact>
    <version>4.8.5</version>
  </dependency>
</dependencies>
Copy to Clipboard Toggle word wrap

37.3. 使用方法

37.3.1. Camel JBang 用法

37.3.1.1. JBang 的先决条件
  • 安装 JBang
  • 您已执行以下命令:

    jbang app install camel@apache/camel
    Copy to Clipboard Toggle word wrap
37.3.1.2. 使用 JBang 运行路由

假设有一个名为 route.yaml 的文件,其中包含此内容:

- route:
    from:
      uri: "kamelet:timer-source"
      parameters:
        period: 10000
        message: 'test'
      steps:
        - to:
            uri: "kamelet:log-sink"
Copy to Clipboard Toggle word wrap

现在,您可以直接使用以下命令运行它。

camel run route.yaml
Copy to Clipboard Toggle word wrap

37.3.2. Knative Sink

您可以通过将 jira-update-issue-sink Kamelet 绑定到 Knative 对象来使用 jira-update-issue-sink Kamelet。

jira-update-issue-sink-binding.yaml

apiVersion: camel.apache.org/v1
kind: Pipe
metadata:
  name: jira-update-issue-sink-binding
spec:
  source:
    ref:
      kind: KafkaTopic
      apiVersion: kafka.strimzi.io/v1beta1
      name: my-topic
  steps:
  - ref:
      kind: Kamelet
      apiVersion: camel.apache.org/v1
      name: insert-header-action
    properties:
      name: "issueKey"
      value: "MYP-163"
  - ref:
      kind: Kamelet
      apiVersion: camel.apache.org/v1
      name: insert-header-action
    properties:
      name: "issueTypeName"
      value: "Bug"
  - ref:
      kind: Kamelet
      apiVersion: camel.apache.org/v1
      name: insert-header-action
    properties:
      name: "issueSummary"
      value: "The issue summary"
  - ref:
      kind: Kamelet
      apiVersion: camel.apache.org/v1
      name: insert-header-action
    properties:
      name: "issuePriorityName"
      value: "Low"
  sink:
    ref:
      kind: Channel
      apiVersion: messaging.knative.dev/v1
      name: mychannel
    properties:
      jiraUrl: "jira server url"
      username: "username"
      password: "password"
Copy to Clipboard Toggle word wrap

37.3.3. Kafka Sink

您可以通过将 jira-update-issue-sink Kamelet 绑定到 Kafka 主题,使用 jira-update-issue-sink Kamelet。

jira-update-issue-sink-binding.yaml

apiVersion: camel.apache.org/v1
kind: Pipe
metadata:
  name: jira-update-issue-sink-binding
spec:
  source:
    ref:
      kind: KafkaTopic
      apiVersion: kafka.strimzi.io/v1beta1
      name: my-topic
  steps:
  - ref:
      kind: Kamelet
      apiVersion: camel.apache.org/v1
      name: insert-header-action
    properties:
      name: "issueKey"
      value: "MYP-163"
  - ref:
      kind: Kamelet
      apiVersion: camel.apache.org/v1
      name: insert-header-action
    properties:
      name: "issueTypeName"
      value: "Bug"
  - ref:
      kind: Kamelet
      apiVersion: camel.apache.org/v1
      name: insert-header-action
    properties:
      name: "issueSummary"
      value: "The issue summary"
  - ref:
      kind: Kamelet
      apiVersion: camel.apache.org/v1
      name: insert-header-action
    properties:
      name: "issuePriorityName"
      value: "Low"
  sink:
    ref:
      kind: Kamelet
      apiVersion: camel.apache.org/v1
      name: jira-update-issue-sink
    properties:
      jiraUrl: "jira server url"
      username: "username"
      password: "password"
Copy to Clipboard Toggle word wrap

37.4. kamelets 源文件

https://github.com/jboss-fuse/camel-kamelets/blob/camel-kamelets-4.10.3-branch/kamelets/jira-update-issue-sink.kamelet.yaml

第 38 章 Jira Source

从 JIRA 接收有关新问题的通知。

要进行身份验证,必须定义用户名/密码或个人令牌。我们建议使用个人令牌,因为它是访问 JIRA 的一种更安全的方法。

38.1. 配置选项

下表总结了 jira-source Kamelet 可用的选项:

Expand
属性名称描述类型默认示例

jiraUrl *

Jira URL

Jira 实例的 URL。

字符串

 

http://my_jira.com:8081

jql

JQL

过滤问题的查询。

字符串

 

project=MyProject

password

密码

用于访问 JIRA 的密码。

字符串

  

personal-token

个人访问令牌

个人访问令牌

字符串

  

username

用户名

用于访问 JIRA 的用户名。

字符串

  

* = 标记为星号的字段 是必需的

38.2. 依赖项

38.2.1. Quarkus 依赖项

<dependencies>
  <dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifact>camel-quarkus-jackson</artifact>
  </dependency>
  <dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifact>camel-quarkus-jira</artifact>
  </dependency>
  <dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifact>camel-quarkus-kamelet</artifact>
  </dependency>
  <dependency>
    <groupId>com.fasterxml.jackson.datatype</groupId>
    <artifact>jackson-datatype-joda</artifact>
    <version>2.12.5</version>
  </dependency>
  <dependency>
    <groupId>org.apache.camel.kamelets</groupId>
    <artifact>camel-kamelets-utils</artifact>
    <version>4.8.5</version>
  </dependency>
</dependencies>
Copy to Clipboard Toggle word wrap

38.3. 使用方法

38.3.1. Camel JBang 用法

38.3.1.1. JBang 的先决条件
  • 安装 JBang
  • 您已执行以下命令:

    jbang app install camel@apache/camel
    Copy to Clipboard Toggle word wrap
38.3.1.2. 使用 JBang 运行路由

假设有一个名为 route.yaml 的文件,其中包含此内容:

- route:
    from:
      uri: "kamelet:timer-source"
      parameters:
        period: 10000
        message: 'test'
      steps:
        - to:
            uri: "kamelet:log-sink"
Copy to Clipboard Toggle word wrap

现在,您可以直接使用以下命令运行它。

camel run route.yaml
Copy to Clipboard Toggle word wrap

38.3.2. Knative Source

您可以通过将 jira-source Kamelet 绑定到 Knative 对象来使用 jira-source Kamelet 作为 Knative 源。

jira-source-binding.yaml

apiVersion: camel.apache.org/v1
kind: Pipe
metadata:
  name: jira-source-binding
spec:
  source:
    ref:
      kind: Kamelet
      apiVersion: camel.apache.org/v1
      name: jira-source
    properties:
      jiraUrl: "http://my_jira.com:8081"
      password: "The Password"
      username: "The Username"
  sink:
    ref:
      kind: Channel
      apiVersion: messaging.knative.dev/v1
      name: mychannel
Copy to Clipboard Toggle word wrap

38.3.3. Kafka 源

您可以通过将 jira-source Kamelet 绑定到 Kafka 主题来将 jira-source Kamelet 用作 Kafka 源。

jira-source-binding.yaml

apiVersion: camel.apache.org/v1
kind: Pipe
metadata:
  name: jira-source-binding
spec:
  source:
    ref:
      kind: Kamelet
      apiVersion: camel.apache.org/v1
      name: jira-source
    properties:
      jiraUrl: "http://my_jira.com:8081"
      password: "The Password"
      username: "The Username"
  sink:
    ref:
      kind: KafkaTopic
      apiVersion: kafka.strimzi.io/v1beta1
      name: my-topic
Copy to Clipboard Toggle word wrap

38.4. kamelets 源文件

https://github.com/jboss-fuse/camel-kamelets/blob/camel-kamelets-4.10.3-branch/kamelets/jira-source.kamelet.yaml

第 39 章 JMS - AMQP 1.0 Sink

使用 Apache Qpid JMS 客户端将数据发送到任何 AMQP 1.0 兼容消息代理。

39.1. 配置选项

下表总结了 jms-amqp-10-sink Kamelet 可用的选项:

Expand
属性名称描述类型默认示例

destinationName *

目标名称

JMS 目的地名称。

字符串

  

remoteURI *

代理 URL

JMS URL。

字符串

 

amqp://my-host:31616

destinationType

目的地类型

JMS 目的地类型(队列或主题)。

字符串

queue

 

* = 标记为星号的字段 是必需的

39.2. 依赖项

39.2.1. Quarkus 依赖项

<dependencies>
  <dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifact>camel-quarkus-amqp</artifact>
  </dependency>
  <dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifact>camel-quarkus-jms</artifact>
  </dependency>
  <dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifact>camel-quarkus-kamelet</artifact>
  </dependency>
  <dependency>
    <groupId>org.apache.camel.kamelets</groupId>
    <artifact>camel-kamelets-utils</artifact>
    <version>4.8.5</version>
  </dependency>
</dependencies>
Copy to Clipboard Toggle word wrap

39.3. 使用方法

39.3.1. Camel JBang 用法

39.3.1.1. JBang 的先决条件
  • 安装 JBang
  • 您已执行以下命令:

    jbang app install camel@apache/camel
    Copy to Clipboard Toggle word wrap
39.3.1.2. 使用 JBang 运行路由

假设有一个名为 route.yaml 的文件,其中包含此内容:

- route:
    from:
      uri: "kamelet:timer-source"
      parameters:
        period: 10000
        message: 'test'
      steps:
        - to:
            uri: "kamelet:log-sink"
Copy to Clipboard Toggle word wrap

现在,您可以直接使用以下命令运行它。

camel run route.yaml
Copy to Clipboard Toggle word wrap

39.3.2. Knative Sink

您可以通过将 jms-amqp-10-sink Kamelet 绑定到 Knative 对象来将 jms-amqp-10-sink Kamelet 用作 Knative sink。

jms-amqp-10-sink-binding.yaml

apiVersion: camel.apache.org/v1
kind: Pipe
metadata:
  name: jms-amqp-10-sink-binding
spec:
  source:
    ref:
      kind: Channel
      apiVersion: messaging.knative.dev/v1
      name: mychannel
  sink:
    ref:
      kind: Kamelet
      apiVersion: camel.apache.org/v1
      name: jms-amqp-10-sink
    properties:
      destinationName: "The Destination Name"
      remoteURI: "amqp://my-host:31616"
Copy to Clipboard Toggle word wrap

39.3.3. Kafka Sink

您可以通过将 jms-amqp-10-sink Kamelet 绑定到 Kafka 主题,将 jms-amqp-10-sink Kamelet 用作 Kafka sink。

jms-amqp-10-sink-binding.yaml

apiVersion: camel.apache.org/v1
kind: Pipe
metadata:
  name: jms-amqp-10-sink-binding
spec:
  source:
    ref:
      kind: KafkaTopic
      apiVersion: kafka.strimzi.io/v1beta1
      name: my-topic
  sink:
    ref:
      kind: Kamelet
      apiVersion: camel.apache.org/v1
      name: jms-amqp-10-sink
    properties:
      destinationName: "The Destination Name"
      remoteURI: "amqp://my-host:31616"
Copy to Clipboard Toggle word wrap

39.4. kamelets 源文件

https://github.com/jboss-fuse/camel-kamelets/blob/camel-kamelets-4.10.3-branch/kamelets/jms-amqp-10-sink.kamelet.yaml

第 40 章 JMS - AMQP 1.0 源

使用 Apache Qpid JMS 客户端,使用来自任何 AMQP 1.0 兼容消息代理的数据。

40.1. 配置选项

下表总结了 jms-amqp-10-source Kamelet 可用的选项:

Expand
属性名称描述类型默认示例

destinationName *

目标名称

JMS 目的地名称。

字符串

  

remoteURI *

代理 URL

JMS URL。

字符串

 

amqp://my-host:31616

destinationType

目的地类型

JMS 目的地类型(队列或主题)。

字符串

queue

 

* = 标记为星号的字段 是必需的

40.2. 依赖项

40.2.1. Quarkus 依赖项

<dependencies>
  <dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifact>camel-quarkus-amqp</artifact>
  </dependency>
  <dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifact>camel-quarkus-jms</artifact>
  </dependency>
  <dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifact>camel-quarkus-kamelet</artifact>
  </dependency>
  <dependency>
    <groupId>org.apache.camel.kamelets</groupId>
    <artifact>camel-kamelets-utils</artifact>
    <version>4.8.5</version>
  </dependency>
</dependencies>
Copy to Clipboard Toggle word wrap

40.3. 使用方法

40.3.1. Camel JBang 用法

40.3.1.1. JBang 的先决条件
  • 安装 JBang
  • 您已执行以下命令:

    jbang app install camel@apache/camel
    Copy to Clipboard Toggle word wrap
40.3.1.2. 使用 JBang 运行路由

假设有一个名为 route.yaml 的文件,其中包含此内容:

- route:
    from:
      uri: "kamelet:timer-source"
      parameters:
        period: 10000
        message: 'test'
      steps:
        - to:
            uri: "kamelet:log-sink"
Copy to Clipboard Toggle word wrap

现在,您可以直接使用以下命令运行它。

camel run route.yaml
Copy to Clipboard Toggle word wrap

40.3.2. Knative Source

您可以通过将 jms-amqp-10-source Kamelet 绑定到 Knative 对象来将 jms-amqp-10-source Kamelet 用作 Knative 源。

jms-amqp-10-source-binding.yaml

apiVersion: camel.apache.org/v1
kind: Pipe
metadata:
  name: jms-amqp-10-source-binding
spec:
  source:
    ref:
      kind: Kamelet
      apiVersion: camel.apache.org/v1
      name: jms-amqp-10-source
    properties:
      destinationName: "The Destination Name"
      remoteURI: "amqp://my-host:31616"
  sink:
    ref:
      kind: Channel
      apiVersion: messaging.knative.dev/v1
      name: mychannel
Copy to Clipboard Toggle word wrap

40.3.3. Kafka 源

您可以通过将 jms-amqp-10-source Kamelet 绑定到 Kafka 主题来将 jms-amqp-10-source Kamelet 用作 Kafka 源。

jms-amqp-10-source-binding.yaml

apiVersion: camel.apache.org/v1
kind: Pipe
metadata:
  name: jms-amqp-10-source-binding
spec:
  source:
    ref:
      kind: Kamelet
      apiVersion: camel.apache.org/v1
      name: jms-amqp-10-source
    properties:
      destinationName: "The Destination Name"
      remoteURI: "amqp://my-host:31616"
  sink:
    ref:
      kind: KafkaTopic
      apiVersion: kafka.strimzi.io/v1beta1
      name: my-topic
Copy to Clipboard Toggle word wrap

40.4. kamelets 源文件

https://github.com/jboss-fuse/camel-kamelets/blob/camel-kamelets-4.10.3-branch/kamelets/jms-amqp-10-source.kamelet.yaml

第 41 章 JMS - IBM MQ Sink

可以使用 JMS 将事件生成到 IBM MQ 消息队列的 Kamelet。

在 Pipe 文件中,您必须在 spec→integration→dependencies 中明确声明 IBM MQ Server 驱动程序依赖项:

spec:
  ...
  integration:
      ...
      dependencies:
      - "mvn:com.ibm.mq:com.ibm.mq.jakarta.client:<version>"
Copy to Clipboard Toggle word wrap

41.1. 配置选项

下表总结了 jms-ibm-mq-sink Kamelet 可用的选项:

Expand
属性名称描述类型默认示例

channel *

IBM MQ 频道

IBM MQ 频道的名称。

字符串

  

destinationName *

目标名称

目标名称。

字符串

  

password *

密码

向 IBM MQ 服务器进行身份验证的密码。

字符串

  

queueManager *

IBM MQ Queue Manager

IBM MQ Queue Manager 的名称。

字符串

  

serverName *

IBM MQ 服务器名称

IBM MQ 服务器名称或地址。

字符串

  

serverPort *

IBM MQ 服务器端口

IBM MQ 服务器端口。

整数

1414

 

username *

用户名

向 IBM MQ 服务器进行身份验证的用户名。

字符串

  

clientId

IBM MQ 客户端 ID

IBM MQ 客户端 ID 的名称。

字符串

  

destinationType

目的地类型

JMS 目的地类型(队列或主题)。

字符串

queue

 

sslCipherSuite

CipherSuite

用于启用 TLS 的 CipherSuite。

字符串

  

* = 标记为星号的字段 是必需的

41.2. 依赖项

41.2.1. Quarkus 依赖项

<dependencies>
  <dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifact>camel-quarkus-jms</artifact>
  </dependency>
  <dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifact>camel-quarkus-kamelet</artifact>
  </dependency>
  <dependency>
    <groupId>org.apache.camel.kamelets</groupId>
    <artifact>camel-kamelets-utils</artifact>
    <version>4.8.5</version>
  </dependency>
</dependencies>
Copy to Clipboard Toggle word wrap

41.3. 使用方法

41.3.1. Camel JBang 用法

41.3.1.1. JBang 的先决条件
  • 安装 JBang
  • 您已执行以下命令:

    jbang app install camel@apache/camel
    Copy to Clipboard Toggle word wrap
41.3.1.2. 使用 JBang 运行路由

假设有一个名为 route.yaml 的文件,其中包含此内容:

- route:
    from:
      uri: "kamelet:timer-source"
      parameters:
        period: 10000
        message: 'test'
      steps:
        - to:
            uri: "kamelet:log-sink"
Copy to Clipboard Toggle word wrap

现在,您可以直接使用以下命令运行它。

camel run route.yaml
Copy to Clipboard Toggle word wrap

41.3.2. Knative Sink

您可以通过将 jms-ibm-mq-sink Kamelet 绑定到 Knative 对象来将 jms-ibm-mq-sink Kamelet 用作 Knative sink。

jms-ibm-mq-sink-binding.yaml

apiVersion: camel.apache.org/v1
kind: Pipe
metadata:
  name: jms-ibm-mq-sink-binding
spec:
  source:
    ref:
      kind: KafkaTopic
      apiVersion: kafka.strimzi.io/v1beta1
      name: my-topic
  sink:
    ref:
      kind: Channel
      apiVersion: messaging.knative.dev/v1
      name: mychannel
    properties:
      serverName: "10.103.41.245"
      serverPort: "1414"
      destinationType: "queue"
      destinationName: "DEV.QUEUE.1"
      queueManager: QM1
      channel: DEV.APP.SVRCONN
      username: app
      password: passw0rd
Copy to Clipboard Toggle word wrap

41.3.3. Kafka Sink

您可以通过将它绑定到 Kafka 主题,使用 jms-ibm-mq-sink Kamelet 作为 Kafka sink。

jms-ibm-mq-sink-binding.yaml

apiVersion: camel.apache.org/v1
kind: Pipe
metadata:
  name: jms-ibm-mq-sink-binding
spec:
  source:
    ref:
      kind: KafkaTopic
      apiVersion: kafka.strimzi.io/v1beta1
      name: my-topic
  sink:
    ref:
      kind: Kamelet
      apiVersion: camel.apache.org/v1
      name: jms-ibm-mq-sink
    properties:
      serverName: "10.103.41.245"
      serverPort: "1414"
      destinationType: "queue"
      destinationName: "DEV.QUEUE.1"
      queueManager: QM1
      channel: DEV.APP.SVRCONN
      username: app
      password: passw0rd
Copy to Clipboard Toggle word wrap

41.4. kamelets 源文件

https://github.com/jboss-fuse/camel-kamelets/blob/camel-kamelets-4.10.3-branch/kamelets/jms-ibm-mq-sink.kamelet.yaml

第 42 章 JMS - IBM MQ Source

可以使用 JMS 从 IBM MQ 消息队列读取事件的 Kamelet。

在 Pipe 文件中,您必须在 spec→integration→dependencies 中明确声明 IBM MQ Server 驱动程序依赖项:

spec:
  ...
  integration:
      ...
      dependencies:
      - "mvn:com.ibm.mq:com.ibm.mq.jakarta.client:<version>"
Copy to Clipboard Toggle word wrap

42.1. 配置选项

下表总结了 jms-ibm-mq-source Kamelet 可用的选项:

Expand
属性名称描述类型默认示例

channel *

IBM MQ 频道

IBM MQ 频道的名称。

字符串

  

destinationName *

目标名称

目标名称。

字符串

  

password *

密码

向 IBM MQ 服务器进行身份验证的密码。

字符串

  

queueManager *

IBM MQ Queue Manager

IBM MQ Queue Manager 的名称。

字符串

  

serverName *

IBM MQ 服务器名称

IBM MQ 服务器名称或地址。

字符串

  

serverPort *

IBM MQ 服务器端口

IBM MQ 服务器端口。

整数

1414

 

username *

用户名

向 IBM MQ 服务器进行身份验证的用户名。

字符串

  

clientId

IBM MQ 客户端 ID

IBM MQ 客户端 ID 的名称。

字符串

  

destinationType

目的地类型

JMS 目的地类型(队列或主题)。

字符串

queue

 

sslCipherSuite

CipherSuite

用于启用 TLS 的 CipherSuite。

字符串

  

* = 标记为星号的字段 是必需的

42.2. 依赖项

42.2.1. Quarkus 依赖项

<dependencies>
  <dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifact>camel-quarkus-jms</artifact>
  </dependency>
  <dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifact>camel-quarkus-kamelet</artifact>
  </dependency>
  <dependency>
    <groupId>org.apache.camel.kamelets</groupId>
    <artifact>camel-kamelets-utils</artifact>
    <version>4.8.5</version>
  </dependency>
</dependencies>
Copy to Clipboard Toggle word wrap

42.3. 使用方法

42.3.1. Camel JBang 用法

42.3.1.1. JBang 的先决条件
  • 安装 JBang
  • 您已执行以下命令:

    jbang app install camel@apache/camel
    Copy to Clipboard Toggle word wrap
42.3.1.2. 使用 JBang 运行路由

假设有一个名为 route.yaml 的文件,其中包含此内容:

- route:
    from:
      uri: "kamelet:timer-source"
      parameters:
        period: 10000
        message: 'test'
      steps:
        - to:
            uri: "kamelet:log-sink"
Copy to Clipboard Toggle word wrap

现在,您可以直接使用以下命令运行它。

camel run route.yaml
Copy to Clipboard Toggle word wrap

42.3.2. Knative Source

您可以通过将 jms-ibm-mq-source Kamelet 绑定到 Knative 对象来将 jms-ibm-mq-source Kamelet 用作 Knative 源。

jms-ibm-mq-source-binding.yaml

apiVersion: camel.apache.org/v1
kind: Pipe
metadata:
  name: jms-ibm-mq-source-binding
spec:
  source:
    ref:
      kind: Kamelet
      apiVersion: camel.apache.org/v1
      name: jms-ibm-mq-source
    properties:
      serverName: "10.103.41.245"
      serverPort: "1414"
      destinationType: "queue"
      destinationName: "DEV.QUEUE.1"
      queueManager: QM1
      channel: DEV.APP.SVRCONN
      username: app
      password: passw0rd
  sink:
    ref:
      kind: Channel
      apiVersion: messaging.knative.dev/v1
      name: mychannel
Copy to Clipboard Toggle word wrap

42.3.3. Kafka 源

您可以通过将 jms-ibm-mq-source Kamelet 绑定到 Kafka 主题,将 jms-ibm-mq-source Kamelet 用作 Kafka 源。

jms-ibm-mq-source-binding.yaml

apiVersion: camel.apache.org/v1
kind: Pipe
metadata:
  name: jms-ibm-mq-source-binding
spec:
  source:
    ref:
      kind: Kamelet
      apiVersion: camel.apache.org/v1
      name: jms-ibm-mq-source
    properties:
      serverName: "10.103.41.245"
      serverPort: "1414"
      destinationType: "queue"
      destinationName: "DEV.QUEUE.1"
      queueManager: QM1
      channel: DEV.APP.SVRCONN
      username: app
      password: passw0rd
  sink:
    ref:
      kind: KafkaTopic
      apiVersion: kafka.strimzi.io/v1beta1
      name: my-topic
Copy to Clipboard Toggle word wrap

42.4. kamelets 源文件

https://github.com/jboss-fuse/camel-kamelets/blob/camel-kamelets-4.10.3-branch/kamelets/jms-ibm-mq-source.kamelet.yaml

第 43 章 JSLT Action

对 JSON 应用 JSLT 查询或转换。

43.1. 配置选项

下表总结了 jslt-action Kamelet 可用的选项:

Expand
属性名称描述类型默认示例

Template *

模板

JSLT Transformation 的内联模板

字符串

 

file://template.json

* = 标记为星号的字段 是必需的

43.2. 依赖项

43.2.1. Quarkus 依赖项

<dependencies>
  <dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifact>camel-quarkus-jslt</artifact>
  </dependency>
  <dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifact>camel-quarkus-kamelet</artifact>
  </dependency>
  <dependency>
    <groupId>org.apache.camel.kamelets</groupId>
    <artifact>camel-kamelets-utils</artifact>
    <version>4.8.5</version>
  </dependency>
</dependencies>
Copy to Clipboard Toggle word wrap

43.3. 使用方法

43.3.1. Camel JBang 用法

43.3.1.1. JBang 的先决条件
  • 安装 JBang
  • 您已执行以下命令:

    jbang app install camel@apache/camel
    Copy to Clipboard Toggle word wrap
43.3.1.2. 使用 JBang 运行路由

假设有一个名为 route.yaml 的文件,其中包含此内容:

- route:
    from:
      uri: "kamelet:timer-source"
      parameters:
        period: 10000
        message: 'test'
      steps:
        - to:
            uri: "kamelet:log-sink"
Copy to Clipboard Toggle word wrap

现在,您可以直接使用以下命令运行它。

camel run route.yaml
Copy to Clipboard Toggle word wrap

43.3.2. Knative Action

您可以使用 jslt-action Kamelet 作为 Knative 绑定中的中间步骤。

jslt-action-binding.yaml

apiVersion: camel.apache.org/v1
kind: Pipe
metadata:
  name: jslt-action-binding
spec:
  source:
    ref:
      kind: Kamelet
      apiVersion: camel.apache.org/v1
      name: timer-source
    properties:
      message: {"foo" : "bar"}
  steps:
  - ref:
      kind: Kamelet
      apiVersion: camel.apache.org/v1
      name: jslt-action
    properties:
      template: "file://template.json"
  sink:
    ref:
      kind: Channel
      apiVersion: messaging.knative.dev/v1
      name: mychannel
Copy to Clipboard Toggle word wrap

43.3.3. Kafka 操作

您可以使用 jslt-action Kamelet 作为 Kafka 绑定中的中间步骤。

jslt-action-binding.yaml

apiVersion: camel.apache.org/v1
kind: Pipe
metadata:
  name: jslt-action-binding
spec:
  source:
    ref:
      kind: Kamelet
      apiVersion: camel.apache.org/v1
      name: timer-source
    properties:
      message: {"foo" : "bar"}
  steps:
  - ref:
      kind: Kamelet
      apiVersion: camel.apache.org/v1
      name: jslt-action
    properties:
      template: "file://template.json"
  sink:
    ref:
      kind: KafkaTopic
      apiVersion: kafka.strimzi.io/v1beta1
      name: my-topic
Copy to Clipboard Toggle word wrap

43.4. kamelets 源文件

https://github.com/jboss-fuse/camel-kamelets/blob/camel-kamelets-4.10.3-branch/kamelets/jslt-action.kamelet.yaml

第 44 章 JSON 序列化操作

对 JSON 进行反序列化有效负载。

44.1. 配置选项

json-deserialize-action Kamelet 没有任何选项。

44.2. 依赖项

44.2.1. Quarkus 依赖项

<dependencies>
  <dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifact>camel-quarkus-core</artifact>
  </dependency>
  <dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifact>camel-quarkus-jackson</artifact>
  </dependency>
  <dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifact>camel-quarkus-kamelet</artifact>
  </dependency>
  <dependency>
    <groupId>org.apache.camel.kamelets</groupId>
    <artifact>camel-kamelets-utils</artifact>
    <version>4.8.5</version>
  </dependency>
</dependencies>
Copy to Clipboard Toggle word wrap

44.3. 使用方法

44.3.1. Camel JBang 用法

44.3.1.1. JBang 的先决条件
  • 安装 JBang
  • 您已执行以下命令:

    jbang app install camel@apache/camel
    Copy to Clipboard Toggle word wrap
44.3.1.2. 使用 JBang 运行路由

假设有一个名为 route.yaml 的文件,其中包含此内容:

- route:
    from:
      uri: "kamelet:timer-source"
      parameters:
        period: 10000
        message: 'test'
      steps:
        - to:
            uri: "kamelet:log-sink"
Copy to Clipboard Toggle word wrap

现在,您可以直接使用以下命令运行它。

camel run route.yaml
Copy to Clipboard Toggle word wrap

44.3.2. Knative Action

您可以使用 json-deserialize-action Kamelet 作为 Knative 绑定中的中间步骤。

json-deserialize-action-binding.yaml

apiVersion: camel.apache.org/v1
kind: Pipe
metadata:
  name: json-deserialize-action-binding
spec:
  source:
    ref:
      kind: Kamelet
      apiVersion: camel.apache.org/v1
      name: timer-source
    properties:
      message: "Hello"
  steps:
  - ref:
      kind: Kamelet
      apiVersion: camel.apache.org/v1
      name: json-deserialize-action
  sink:
    ref:
      kind: Channel
      apiVersion: messaging.knative.dev/v1
      name: mychannel
Copy to Clipboard Toggle word wrap

44.3.3. Kafka 操作

您可以使用 json-deserialize-action Kamelet 作为 Kafka 绑定中的中间步骤。

json-deserialize-action-binding.yaml

apiVersion: camel.apache.org/v1
kind: Pipe
metadata:
  name: json-deserialize-action-binding
spec:
  source:
    ref:
      kind: Kamelet
      apiVersion: camel.apache.org/v1
      name: timer-source
    properties:
      message: "Hello"
  steps:
  - ref:
      kind: Kamelet
      apiVersion: camel.apache.org/v1
      name: json-deserialize-action
  sink:
    ref:
      kind: KafkaTopic
      apiVersion: kafka.strimzi.io/v1beta1
      name: my-topic
Copy to Clipboard Toggle word wrap

44.4. kamelets 源文件

https://github.com/jboss-fuse/camel-kamelets/blob/camel-kamelets-4.10.3-branch/kamelets/json-deserialize-action.kamelet.yaml

第 45 章 JSON Serialize Action

将有效负载序列化为 JSON。

45.1. 配置选项

json-serialize-action Kamelet 没有任何选项。

45.2. 依赖项

45.2.1. Quarkus 依赖项

<dependencies>
  <dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifact>camel-quarkus-core</artifact>
  </dependency>
  <dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifact>camel-quarkus-jackson</artifact>
  </dependency>
  <dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifact>camel-quarkus-kamelet</artifact>
  </dependency>
  <dependency>
    <groupId>org.apache.camel.kamelets</groupId>
    <artifact>camel-kamelets-utils</artifact>
    <version>4.8.5</version>
  </dependency>
</dependencies>
Copy to Clipboard Toggle word wrap

45.3. 使用方法

45.3.1. Camel JBang 用法

45.3.1.1. JBang 的先决条件
  • 安装 JBang
  • 您已执行以下命令:

    jbang app install camel@apache/camel
    Copy to Clipboard Toggle word wrap
45.3.1.2. 使用 JBang 运行路由

假设有一个名为 route.yaml 的文件,其中包含此内容:

- route:
    from:
      uri: "kamelet:timer-source"
      parameters:
        period: 10000
        message: 'test'
      steps:
        - to:
            uri: "kamelet:log-sink"
Copy to Clipboard Toggle word wrap

现在,您可以直接使用以下命令运行它。

camel run route.yaml
Copy to Clipboard Toggle word wrap

45.3.2. Knative Action

您可以使用 json-serialize-action Kamelet 作为 Knative 绑定中的中间步骤。

json-serialize-action-binding.yaml

apiVersion: camel.apache.org/v1
kind: Pipe
metadata:
  name: json-serialize-action-binding
spec:
  source:
    ref:
      kind: Kamelet
      apiVersion: camel.apache.org/v1
      name: timer-source
    properties:
      message: "Hello"
  steps:
  - ref:
      kind: Kamelet
      apiVersion: camel.apache.org/v1
      name: json-serialize-action
  sink:
    ref:
      kind: Channel
      apiVersion: messaging.knative.dev/v1
      name: mychannel
Copy to Clipboard Toggle word wrap

45.3.3. Kafka 操作

您可以使用 json-serialize-action Kamelet 作为 Kafka 绑定中的中间步骤。

json-serialize-action-binding.yaml

apiVersion: camel.apache.org/v1
kind: Pipe
metadata:
  name: json-serialize-action-binding
spec:
  source:
    ref:
      kind: Kamelet
      apiVersion: camel.apache.org/v1
      name: timer-source
    properties:
      message: "Hello"
  steps:
  - ref:
      kind: Kamelet
      apiVersion: camel.apache.org/v1
      name: json-serialize-action
  sink:
    ref:
      kind: KafkaTopic
      apiVersion: kafka.strimzi.io/v1beta1
      name: my-topic
Copy to Clipboard Toggle word wrap

45.4. kamelets 源文件

https://github.com/jboss-fuse/camel-kamelets/blob/camel-kamelets-4.10.3-branch/kamelets/json-serialize-action.kamelet.yaml

第 46 章 Kafka Batch Manual Commit Action

手动提交 Kafka Batch Offset。

46.1. 配置选项

kafka-batch-manual-commit-action Kamelet 没有任何选项。

46.2. 依赖项

46.2.1. Quarkus 依赖项

<dependencies>
  <dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifact>camel-quarkus-kamelet</artifact>
  </dependency>
  <dependency>
    <groupId>org.apache.camel.kamelets</groupId>
    <artifact>camel-kamelets-utils</artifact>
    <version>4.8.5</version>
  </dependency>
</dependencies>
Copy to Clipboard Toggle word wrap

46.3. 使用方法

46.3.1. Camel JBang 用法

46.3.1.1. JBang 的先决条件
  • 安装 JBang
  • 您已执行以下命令:

    jbang app install camel@apache/camel
    Copy to Clipboard Toggle word wrap
46.3.1.2. 使用 JBang 运行路由

假设有一个名为 route.yaml 的文件,其中包含此内容:

- route:
    from:
      uri: "kamelet:timer-source"
      parameters:
        period: 10000
        message: 'test'
      steps:
        - to:
            uri: "kamelet:log-sink"
Copy to Clipboard Toggle word wrap

现在,您可以直接使用以下命令运行它。

camel run route.yaml
Copy to Clipboard Toggle word wrap

46.3.2. Knative Action

您可以使用 kafka-batch-manual-commit-action Kamelet 作为 Knative 绑定中的中间步骤。

kafka-batch-manual-commit-action-binding.yaml

apiVersion: camel.apache.org/v1
kind: Pipe
metadata:
  name: kafka-batch-manual-commit-action-binding
spec:
  source:
    ref:
      kind: Kamelet
      apiVersion: camel.apache.org/v1
      name: timer-source
    properties:
      message: "Hello"
  steps:
  - ref:
      kind: Kamelet
      apiVersion: camel.apache.org/v1
      name: kafka-batch-manual-commit-action
  sink:
    ref:
      kind: Channel
      apiVersion: messaging.knative.dev/v1
      name: mychannel
Copy to Clipboard Toggle word wrap

46.3.3. Kafka 操作

您可以使用 kafka-batch-manual-commit-action Kamelet 作为 Kafka 绑定中的中间步骤。

kafka-batch-manual-commit-action-binding.yaml

apiVersion: camel.apache.org/v1
kind: Pipe
metadata:
  name: kafka-batch-manual-commit-action-binding
spec:
  source:
    ref:
      kind: Kamelet
      apiVersion: camel.apache.org/v1
      name: timer-source
    properties:
      message: "Hello"
  steps:
  - ref:
      kind: Kamelet
      apiVersion: camel.apache.org/v1
      name: kafka-batch-manual-commit-action
  sink:
    ref:
      kind: KafkaTopic
      apiVersion: kafka.strimzi.io/v1beta1
      name: my-topic
Copy to Clipboard Toggle word wrap

46.4. kamelets 源文件

https://github.com/jboss-fuse/camel-kamelets/blob/camel-kamelets-4.10.3-branch/kamelets/kafka-batch-manual-commit-action.kamelet.yaml

第 47 章 Kafka Batch Source

通过 Plain Login Module 批量接收 Kafka 主题的数据,并通过 KafkaManualCommit 手动提交它们。

47.1. 配置选项

下表总结了 kafka-batch-source Kamelet 可用的选项:

Expand
属性名称描述类型默认示例

bootstrapServers *

bootstrap 服务器

以逗号分隔的 Kafka Broker URL 列表

字符串

  

password *

密码

在 kafka 中验证的密码

字符串

  

topic *

主题名称

以逗号分隔的 Kafka 主题名称列表

字符串

  

User *

用户名

为 Kafka 验证的用户名

字符串

  

allowManualCommit

允许手动提交

是否允许进行手动提交

布尔值

False

 

autoCommitEnable

自动提交启用

如果为 true,请定期提交到 ZooKeeper,以偏移已由消费者获取的信息

布尔值

True

 

autoOffsetReset

自动偏移重置

没有初始偏移时该怎么办。有 3 个 enums,值可以是 latest、earliest、none 之一

字符串

latest

 

batchSize

批量 Dimension

在单个调用中返回的最大记录数()

整数

500

 

batchingIntervalMs

批处理间隔

在消费者批处理模式中,此选项在 millis 中指定时间,以便在当前批处理大小未达到 maxPollRecords 定义的最大值时触发批处理完成 eager。请注意,触发器在给定间隔上不是准确的,因为这只能在 kafka 轮询之间发生(请参阅 pollTimeoutMs 选项)。

整数

  

consumerGroup

消费者组

唯一标识此源所属消费者组的字符串

字符串

 

my-group-id

deserializeHeaders

自动序列化标头

启用 Kamelet 源时,会将所有消息标头反序列化为 String 表示。

布尔值

True

 

maxPollIntervalMs

最大 Poll Interval

使用消费者组管理时调用 poll ()的最大延迟。

整数

  

pollOnError

轮询错误行为

如果在轮询新消息时 kafka 延迟一个异常,则应该做什么。有 5 个枚举,值可以是 DISCARD,ERROR_HANDLER,RECONNECT,RETRY,STOP

字符串

ERROR_HANDLER

 

pollTimeout

轮询超时间隔

轮询 KafkaConsumer 时使用的超时

整数

5000

 

saslMechanism

SASL 机制

使用简单身份验证和安全层(SASL)机制。

字符串

PLAIN

 

securityProtocol

安全协议

用于与代理通信的协议。支持 SASL_PLAINTEXT、PLAINTEXT、SASL_SSL 和 SSL

字符串

SASL_SSL

 

topicIsPattern

主题模式

主题是否为模式(正则表达式)。这可用于订阅与模式匹配的主题数量。

布尔值

False

 

* = 标记为星号的字段 是必需的

47.2. 依赖项

47.2.1. Quarkus 依赖项

<dependencies>
  <dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifact>camel-quarkus-core</artifact>
  </dependency>
  <dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifact>camel-quarkus-kafka</artifact>
  </dependency>
  <dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifact>camel-quarkus-kamelet</artifact>
  </dependency>
  <dependency>
    <groupId>org.apache.camel.kamelets</groupId>
    <artifact>camel-kamelets-utils</artifact>
    <version>4.8.5</version>
  </dependency>
</dependencies>
Copy to Clipboard Toggle word wrap

47.3. 使用方法

47.3.1. Camel JBang 用法

47.3.1.1. JBang 的先决条件
  • 安装 JBang
  • 您已执行以下命令:

    jbang app install camel@apache/camel
    Copy to Clipboard Toggle word wrap
47.3.1.2. 使用 JBang 运行路由

假设有一个名为 route.yaml 的文件,其中包含此内容:

- route:
    from:
      uri: "kamelet:timer-source"
      parameters:
        period: 10000
        message: 'test'
      steps:
        - to:
            uri: "kamelet:log-sink"
Copy to Clipboard Toggle word wrap

现在,您可以直接使用以下命令运行它。

camel run route.yaml
Copy to Clipboard Toggle word wrap

47.3.2. Knative Source

您可以通过将 kafka-batch-source Kamelet 绑定到 Knative 对象来使用 kafka-batch-source Kamelet 作为 Knative 源。

kafka-batch-source-binding.yaml

apiVersion: camel.apache.org/v1
kind: Pipe
metadata:
  name: kafka-batch-source-binding
spec:
  source:
    ref:
      kind: Kamelet
      apiVersion: camel.apache.org/v1
      name: kafka-batch-source
    properties:
      bootstrapServers: "The Bootstrap Servers"
      password: "The Password"
      topic: "The Topic Names"
      user: "The Username"
  sink:
    ref:
      kind: Channel
      apiVersion: messaging.knative.dev/v1
      name: mychannel
Copy to Clipboard Toggle word wrap

47.3.3. Kafka 源

您可以通过将 kafka-batch-source Kamelet 绑定到 Kafka 主题来将 kafka-batch-source Kamelet 用作 Kafka 源。

kafka-batch-source-binding.yaml

apiVersion: camel.apache.org/v1
kind: Pipe
metadata:
  name: kafka-batch-source-binding
spec:
  source:
    ref:
      kind: Kamelet
      apiVersion: camel.apache.org/v1
      name: kafka-batch-source
    properties:
      bootstrapServers: "The Bootstrap Servers"
      password: "The Password"
      topic: "The Topic Names"
      user: "The Username"
  sink:
    ref:
      kind: KafkaTopic
      apiVersion: kafka.strimzi.io/v1beta1
      name: my-topic
Copy to Clipboard Toggle word wrap

47.4. kamelets 源文件

https://github.com/jboss-fuse/camel-kamelets/blob/camel-kamelets-4.10.3-branch/kamelets/kafka-batch-source.kamelet.yaml

第 48 章 Kafka Manual Commit Action

手动提交 Kafka Offset。

48.1. 配置选项

kafka-manual-commit-action Kamelet 没有任何选项。

48.2. 依赖项

48.2.1. Quarkus 依赖项

<dependencies>
  <dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifact>camel-quarkus-kamelet</artifact>
  </dependency>
  <dependency>
    <groupId>org.apache.camel.kamelets</groupId>
    <artifact>camel-kamelets-utils</artifact>
    <version>4.8.5</version>
  </dependency>
</dependencies>
Copy to Clipboard Toggle word wrap

48.3. 使用方法

48.3.1. Camel JBang 用法

48.3.1.1. JBang 的先决条件
  • 安装 JBang
  • 您已执行以下命令:

    jbang app install camel@apache/camel
    Copy to Clipboard Toggle word wrap
48.3.1.2. 使用 JBang 运行路由

假设有一个名为 route.yaml 的文件,其中包含此内容:

- route:
    from:
      uri: "kamelet:timer-source"
      parameters:
        period: 10000
        message: 'test'
      steps:
        - to:
            uri: "kamelet:log-sink"
Copy to Clipboard Toggle word wrap

现在,您可以直接使用以下命令运行它。

camel run route.yaml
Copy to Clipboard Toggle word wrap

48.3.2. Knative Action

您可以使用 kafka-manual-commit-action Kamelet 作为 Knative 绑定中的中间步骤。

kafka-manual-commit-action-binding.yaml

apiVersion: camel.apache.org/v1
kind: Pipe
metadata:
  name: kafka-manual-commit-action-binding
spec:
  source:
    ref:
      kind: Kamelet
      apiVersion: camel.apache.org/v1
      name: timer-source
    properties:
      message: "Hello"
  steps:
  - ref:
      kind: Kamelet
      apiVersion: camel.apache.org/v1
      name: kafka-manual-commit-action
  sink:
    ref:
      kind: Channel
      apiVersion: messaging.knative.dev/v1
      name: mychannel
Copy to Clipboard Toggle word wrap

48.3.3. Kafka 操作

您可以使用 kafka-manual-commit-action Kamelet 作为 Kafka 绑定中的中间步骤。

kafka-manual-commit-action-binding.yaml

apiVersion: camel.apache.org/v1
kind: Pipe
metadata:
  name: kafka-manual-commit-action-binding
spec:
  source:
    ref:
      kind: Kamelet
      apiVersion: camel.apache.org/v1
      name: timer-source
    properties:
      message: "Hello"
  steps:
  - ref:
      kind: Kamelet
      apiVersion: camel.apache.org/v1
      name: kafka-manual-commit-action
  sink:
    ref:
      kind: KafkaTopic
      apiVersion: kafka.strimzi.io/v1beta1
      name: my-topic
Copy to Clipboard Toggle word wrap

48.4. kamelets 源文件

https://github.com/jboss-fuse/camel-kamelets/blob/camel-kamelets-4.10.3-branch/kamelets/kafka-manual-commit-action.kamelet.yaml

第 49 章 Kafka Sink

通过 Plain Login 模块将数据发送到 Kafka 主题。

Kamelet 可以了解要设置的以下标头:

  • Key / ce-key: 作为消息键
  • partition-key / ce-partitionkey: 作为消息分区键

这两个标头都是可选的。

49.1. 配置选项

下表总结了 kafka-sink Kamelet 可用的选项:

Expand
属性名称描述类型默认示例

bootstrapServers *

bootstrap 服务器

以逗号分隔的 Kafka Broker URL 列表

字符串

  

password *

密码

在 kafka 中验证的密码

字符串

  

topic *

主题名称

以逗号分隔的 Kafka 主题名称列表

字符串

  

User *

用户名

为 Kafka 验证的用户名

字符串

  

saslMechanism

SASL 机制

使用简单身份验证和安全层(SASL)机制。

字符串

PLAIN

 

securityProtocol

安全协议

用于与代理通信的协议。支持 SASL_PLAINTEXT、PLAINTEXT、SASL_SSL 和 SSL

字符串

SASL_SSL

 

* = 标记为星号的字段 是必需的

49.2. 依赖项

49.2.1. Quarkus 依赖项

<dependencies>
  <dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifact>camel-quarkus-core</artifact>
  </dependency>
  <dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifact>camel-quarkus-kafka</artifact>
  </dependency>
  <dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifact>camel-quarkus-kamelet</artifact>
  </dependency>
  <dependency>
    <groupId>org.apache.camel.kamelets</groupId>
    <artifact>camel-kamelets-utils</artifact>
    <version>4.8.5</version>
  </dependency>
</dependencies>
Copy to Clipboard Toggle word wrap

49.3. 使用方法

49.3.1. Camel JBang 用法

49.3.1.1. JBang 的先决条件
  • 安装 JBang
  • 您已执行以下命令:

    jbang app install camel@apache/camel
    Copy to Clipboard Toggle word wrap
49.3.1.2. 使用 JBang 运行路由

假设有一个名为 route.yaml 的文件,其中包含此内容:

- route:
    from:
      uri: "kamelet:timer-source"
      parameters:
        period: 10000
        message: 'test'
      steps:
        - to:
            uri: "kamelet:log-sink"
Copy to Clipboard Toggle word wrap

现在,您可以直接使用以下命令运行它。

camel run route.yaml
Copy to Clipboard Toggle word wrap

49.3.2. Knative Sink

您可以通过将 kafka-sink Kamelet 绑定到 Knative 对象来使用 kafka-sink Kamelet 作为 Knative sink。

kafka-sink-binding.yaml

apiVersion: camel.apache.org/v1
kind: Pipe
metadata:
  name: kafka-sink-binding
spec:
  source:
    ref:
      kind: Channel
      apiVersion: messaging.knative.dev/v1
      name: mychannel
  sink:
    ref:
      kind: Kamelet
      apiVersion: camel.apache.org/v1
      name: kafka-sink
    properties:
      bootstrapServers: "The Brokers"
      password: "The Password"
      topic: "The Topic Names"
      user: "The Username"
Copy to Clipboard Toggle word wrap

49.3.3. Kafka Sink

您可以通过将 kafka-sink Kamelet 绑定到 Kafka 主题来使用 kafka-sink Kamelet 作为 Kafka sink。

kafka-sink-binding.yaml

apiVersion: camel.apache.org/v1
kind: Pipe
metadata:
  name: kafka-sink-binding
spec:
  source:
    ref:
      kind: KafkaTopic
      apiVersion: kafka.strimzi.io/v1beta1
      name: my-topic
  sink:
    ref:
      kind: Kamelet
      apiVersion: camel.apache.org/v1
      name: kafka-sink
    properties:
      bootstrapServers: "The Brokers"
      password: "The Password"
      topic: "The Topic Names"
      user: "The Username"
Copy to Clipboard Toggle word wrap

49.4. kamelets 源文件

https://github.com/jboss-fuse/camel-kamelets/blob/camel-kamelets-4.10.3-branch/kamelets/kafka-sink.kamelet.yaml

第 50 章 Kafka 源

通过 Plain Login 模块接收来自 Kafka 主题的数据。

50.1. 配置选项

下表总结了 kafka-source Kamelet 可用的选项:

Expand
属性名称描述类型默认示例

bootstrapServers *

bootstrap 服务器

以逗号分隔的 Kafka Broker URL 列表

字符串

  

password *

密码

在 kafka 中验证的密码

字符串

  

topic *

主题名称

以逗号分隔的 Kafka 主题名称列表

字符串

  

User *

用户名

为 Kafka 验证的用户名

字符串

  

allowManualCommit

允许手动提交

是否允许进行手动提交

布尔值

False

 

autoCommitEnable

自动提交启用

如果为 true,请定期提交到 ZooKeeper,以偏移已由消费者获取的信息

布尔值

True

 

autoOffsetReset

自动偏移重置

没有初始偏移时该怎么办。有 3 个 enums,值可以是 latest、earliest、none 之一

字符串

latest

 

consumerGroup

消费者组

唯一标识此源所属消费者组的字符串

字符串

 

my-group-id

deserializeHeaders

自动序列化标头

启用 Kamelet 源时,会将所有消息标头反序列化为 String 表示。

布尔值

True

 

pollOnError

轮询错误行为

如果在轮询新消息时 kafka 延迟一个异常,则应该做什么。有 5 个枚举,值可以是 DISCARD,ERROR_HANDLER,RECONNECT,RETRY,STOP

字符串

ERROR_HANDLER

 

saslMechanism

SASL 机制

使用简单身份验证和安全层(SASL)机制。

字符串

PLAIN

 

securityProtocol

安全协议

用于与代理通信的协议。支持 SASL_PLAINTEXT、PLAINTEXT、SASL_SSL 和 SSL

字符串

SASL_SSL

 

topicIsPattern

主题模式

主题是否为模式(正则表达式)。这可用于订阅与模式匹配的主题数量。

布尔值

False

 

* = 标记为星号的字段 是必需的

50.2. 依赖项

50.2.1. Quarkus 依赖项

<dependencies>
  <dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifact>camel-quarkus-core</artifact>
  </dependency>
  <dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifact>camel-quarkus-kafka</artifact>
  </dependency>
  <dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifact>camel-quarkus-kamelet</artifact>
  </dependency>
  <dependency>
    <groupId>org.apache.camel.kamelets</groupId>
    <artifact>camel-kamelets-utils</artifact>
    <version>4.8.5</version>
  </dependency>
</dependencies>
Copy to Clipboard Toggle word wrap

50.3. 使用方法

50.3.1. Camel JBang 用法

50.3.1.1. JBang 的先决条件
  • 安装 JBang
  • 您已执行以下命令:

    jbang app install camel@apache/camel
    Copy to Clipboard Toggle word wrap
50.3.1.2. 使用 JBang 运行路由

假设有一个名为 route.yaml 的文件,其中包含此内容:

- route:
    from:
      uri: "kamelet:timer-source"
      parameters:
        period: 10000
        message: 'test'
      steps:
        - to:
            uri: "kamelet:log-sink"
Copy to Clipboard Toggle word wrap

现在,您可以直接使用以下命令运行它。

camel run route.yaml
Copy to Clipboard Toggle word wrap

50.3.2. Knative Source

您可以通过将 kafka-source Kamelet 绑定到 Knative 对象来使用 kafka-source Kamelet 作为 Knative 源。

kafka-source-binding.yaml

apiVersion: camel.apache.org/v1
kind: Pipe
metadata:
  name: kafka-source-binding
spec:
  source:
    ref:
      kind: Kamelet
      apiVersion: camel.apache.org/v1
      name: kafka-source
    properties:
      bootstrapServers: "The Brokers"
      password: "The Password"
      topic: "The Topic Names"
      user: "The Username"
  sink:
    ref:
      kind: Channel
      apiVersion: messaging.knative.dev/v1
      name: mychannel
Copy to Clipboard Toggle word wrap

50.3.3. Kafka 源

您可以通过将 kafka-source Kamelet 绑定到 Kafka 主题来将 kafka-source Kamelet 用作 Kafka 源。

kafka-source-binding.yaml

apiVersion: camel.apache.org/v1
kind: Pipe
metadata:
  name: kafka-source-binding
spec:
  source:
    ref:
      kind: Kamelet
      apiVersion: camel.apache.org/v1
      name: kafka-source
    properties:
      bootstrapServers: "The Brokers"
      password: "The Password"
      topic: "The Topic Names"
      user: "The Username"
  sink:
    ref:
      kind: KafkaTopic
      apiVersion: kafka.strimzi.io/v1beta1
      name: my-topic
Copy to Clipboard Toggle word wrap

50.4. kamelets 源文件

https://github.com/jboss-fuse/camel-kamelets/blob/camel-kamelets-4.10.3-branch/kamelets/kafka-source.kamelet.yaml

第 51 章 Kafka 主题名称匹配过滤器操作

根据与 regex 相比的 kafka 主题值过滤。

51.1. 配置选项

下表总结了用于 topic-name-matches-filter-action Kamelet 的配置选项:

Expand
属性名称描述类型默认示例

regex *

regex

Regex 根据 Kafka 主题名称评估

字符串

  

* = 标记为星号的字段 是必需的

51.2. 依赖项

51.2.1. Quarkus 依赖项

<dependencies>
  <dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifact>camel-quarkus-core</artifact>
  </dependency>
  <dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifact>camel-quarkus-kamelet</artifact>
  </dependency>
  <dependency>
    <groupId>org.apache.camel.kamelets</groupId>
    <artifact>camel-kamelets-utils</artifact>
    <version>4.8.5</version>
  </dependency>
</dependencies>
Copy to Clipboard Toggle word wrap

51.3. 使用方法

51.4. kamelets 源文件

https://github.com/jboss-fuse/camel-kamelets/blob/camel-kamelets-4.10.3-branch/kamelets/topic-name-matches-filter-action.kamelet.yaml

第 52 章 日志 Sink

记录它接收的所有数据的接收器,用于调试目的。

52.1. 配置选项

下表总结了 log-sink Kamelet 可用的选项:

Expand
属性名称描述类型默认示例

loggerName

日志记录器名称

要使用的日志类别的名称

字符串

log-sink

 

level

日志级别

要使用的日志记录级别

字符串

INFO

 

logMask

Log Mask

屏蔽日志中密码或密码短语等敏感信息

布尔值

False

 

marker

Marker

要使用的可选 Marker 名称

字符串

  

多行

多行

如果启用,则每个信息会在一行上输出

布尔值

False

 

showAllProperties

显示所有属性

显示所有交换属性(内部和自定义)

布尔值

False

 

showBody

show Body

显示消息正文

布尔值

True

 

showBodyType

显示正文类型

显示正文 Java 类型

布尔值

True

 

showExchangePattern

显示交换模式

显示消息交换模式(简称为 MEP)

布尔值

True

 

showHeaders

显示标头

显示收到的标头

布尔值

False

 

showProperties

显示属性

显示交换属性(仅限自定义)。使用 showAllProperties 来显示内部和外部属性。

布尔值

False

 

showStreams

显示流

显示流正文(以下步骤中可能无法提供)

布尔值

False

 

showCachedStreams

显示缓存流

Camel 是否应显示缓存的流正文。

布尔值

True

 

* = 标记为星号的字段 是必需的

52.2. 依赖项

52.2.1. Quarkus 依赖项

<dependencies>
  <dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifact>camel-quarkus-kamelet</artifact>
  </dependency>
  <dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifact>camel-quarkus-log</artifact>
  </dependency>
  <dependency>
    <groupId>org.apache.camel.kamelets</groupId>
    <artifact>camel-kamelets-utils</artifact>
    <version>4.8.5</version>
  </dependency>
</dependencies>
Copy to Clipboard Toggle word wrap

52.3. 使用方法

52.3.1. Camel JBang 用法

52.3.1.1. JBang 的先决条件
  • 安装 JBang
  • 您已执行以下命令:

    jbang app install camel@apache/camel
    Copy to Clipboard Toggle word wrap
52.3.1.2. 使用 JBang 运行路由

假设有一个名为 route.yaml 的文件,其中包含此内容:

- route:
    from:
      uri: "kamelet:timer-source"
      parameters:
        period: 10000
        message: 'test'
      steps:
        - to:
            uri: "kamelet:log-sink"
Copy to Clipboard Toggle word wrap

现在,您可以直接使用以下命令运行它。

camel run route.yaml
Copy to Clipboard Toggle word wrap

52.3.2. Knative Sink

您可以通过将 log-sink Kamelet 绑定到 Knative 对象来使用 log-sink Kamelet 作为 Knative sink。

log-sink-binding.yaml

apiVersion: camel.apache.org/v1
kind: Pipe
metadata:
  name: log-sink-binding
spec:
  source:
    ref:
      kind: Channel
      apiVersion: messaging.knative.dev/v1
      name: mychannel
  sink:
    ref:
      kind: Kamelet
      apiVersion: camel.apache.org/v1
      name: log-sink
Copy to Clipboard Toggle word wrap

52.3.3. Kafka Sink

您可以通过将 log-sink Kamelet 绑定到 Kafka 主题来使用 log-sink Kamelet 作为 Kafka sink。

log-sink-binding.yaml

apiVersion: camel.apache.org/v1
kind: Pipe
metadata:
  name: log-sink-binding
spec:
  source:
    ref:
      kind: KafkaTopic
      apiVersion: kafka.strimzi.io/v1beta1
      name: my-topic
  sink:
    ref:
      kind: Kamelet
      apiVersion: camel.apache.org/v1
      name: log-sink
Copy to Clipboard Toggle word wrap

52.4. kamelets 源文件

https://github.com/jboss-fuse/camel-kamelets/blob/camel-kamelets-4.10.3-branch/kamelets/log-sink.kamelet.yaml

第 53 章 MariaDB Sink

将数据发送到 MariaDB 数据库。

在 Pipe 文件中,您必须在 spec→integration→dependencies 中明确声明 MariaDB 服务器驱动程序依赖项:

  • "mvn:org.mariadb.jdbc:mariadb-java-client:<version>"

此 Kamelet 需要 JSON 格式的正文。使用 key:value 对来映射 JSON 字段和参数。例如,以下是一个查询:

'INSERT INTO accounts (username,city) VALUES (:"username,: failingcity)'

以下是示例查询的输入示例:

'{ "username":"oscerd", "city":"Rome"}'

53.1. 配置选项

下表总结了 mariadb-sink Kamelet 可用的选项:

Expand
属性名称描述类型默认示例

databaseName *

数据库名称

MariaDB 数据库的名称。

字符串

  

password *

密码

用于访问安全 MariaDB 数据库的密码。

字符串

  

query *

查询

对 MariaDB 数据库执行的查询。

字符串

 

INSERT INTO 帐户(username,city) VALUES (:"username,:#city)

serverName *

服务器名称

数据源的服务器名称。

字符串

 

localhost

username *

用户名

用于访问安全 MariaDB 数据库的用户名。

字符串

  

serverPort

服务器端口

数据源的服务器端口。

字符串

3306

 

* = 标记为星号的字段 是必需的

53.2. 依赖项

53.2.1. Quarkus 依赖项

<dependencies>
  <dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifact>camel-quarkus-jackson</artifact>
  </dependency>
  <dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifact>camel-quarkus-kamelet</artifact>
  </dependency>
  <dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifact>camel-quarkus-sql</artifact>
  </dependency>
  <dependency>
    <groupId>org.apache.camel.kamelets</groupId>
    <artifact>camel-kamelets-utils</artifact>
    <version>4.8.5</version>
  </dependency>
  <dependency>
    <groupId>org.apache.commons</groupId>
    <artifact>commons-dbcp2</artifact>
    <version>2.13.0</version>
  </dependency>
</dependencies>
Copy to Clipboard Toggle word wrap

53.3. 使用方法

53.3.1. Camel JBang 用法

53.3.1.1. JBang 的先决条件
  • 安装 JBang
  • 您已执行以下命令:

    jbang app install camel@apache/camel
    Copy to Clipboard Toggle word wrap
53.3.1.2. 使用 JBang 运行路由

假设有一个名为 route.yaml 的文件,其中包含此内容:

- route:
    from:
      uri: "kamelet:timer-source"
      parameters:
        period: 10000
        message: 'test'
      steps:
        - to:
            uri: "kamelet:log-sink"
Copy to Clipboard Toggle word wrap

现在,您可以直接使用以下命令运行它。

camel run route.yaml
Copy to Clipboard Toggle word wrap

53.3.2. Knative Sink

您可以通过将它绑定到 Knative 对象来使用 mariadb-sink Kamelet 作为 Knative sink。

mariadb-sink-binding.yaml

apiVersion: camel.apache.org/v1
kind: Pipe
metadata:
  name: mariadb-sink-binding
spec:
  source:
    ref:
      kind: Channel
      apiVersion: messaging.knative.dev/v1
      name: mychannel
  sink:
    ref:
      kind: Kamelet
      apiVersion: camel.apache.org/v1
      name: mariadb-sink
    properties:
      databaseName: "The Database Name"
      password: "The Password"
      query: "INSERT INTO accounts (username,city) VALUES (:#username,:#city)"
      serverName: "localhost"
      username: "The Username"
Copy to Clipboard Toggle word wrap

53.3.3. Kafka Sink

您可以通过将它绑定到 Kafka 主题,使用 mariadb-sink Kamelet 作为 Kafka sink。

mariadb-sink-binding.yaml

apiVersion: camel.apache.org/v1
kind: Pipe
metadata:
  name: mariadb-sink-binding
spec:
  source:
    ref:
      kind: KafkaTopic
      apiVersion: kafka.strimzi.io/v1beta1
      name: my-topic
  sink:
    ref:
      kind: Kamelet
      apiVersion: camel.apache.org/v1
      name: mariadb-sink
    properties:
      databaseName: "The Database Name"
      password: "The Password"
      query: "INSERT INTO accounts (username,city) VALUES (:#username,:#city)"
      serverName: "localhost"
      username: "The Username"
Copy to Clipboard Toggle word wrap

53.4. kamelets 源文件

https://github.com/jboss-fuse/camel-kamelets/blob/camel-kamelets-4.10.3-branch/kamelets/mariadb-sink.kamelet.yaml

第 54 章 掩码字段操作

在传输中,掩码字段在消息中带有恒定的值。

54.1. 配置选项

下表总结了 mask-field-action Kamelet 可用的选项:

Expand
属性名称描述类型默认示例

字段 *

字段

要屏蔽的字段的逗号分隔列表

字符串

  

替换 *

替换

替换要屏蔽的字段

字符串

  

* = 标记为星号的字段 是必需的

54.2. 依赖项

54.2.1. Quarkus 依赖项

<dependencies>
  <dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifact>camel-quarkus-core</artifact>
  </dependency>
  <dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifact>camel-quarkus-jackson</artifact>
  </dependency>
  <dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifact>camel-quarkus-kafka</artifact>
  </dependency>
  <dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifact>camel-quarkus-kamelet</artifact>
  </dependency>
  <dependency>
    <groupId>org.apache.camel.kamelets</groupId>
    <artifact>camel-kamelets-utils</artifact>
    <version>4.8.5</version>
  </dependency>
</dependencies>
Copy to Clipboard Toggle word wrap

54.3. 使用方法

54.3.1. Camel JBang 用法

54.3.1.1. JBang 的先决条件
  • 安装 JBang
  • 您已执行以下命令:

    jbang app install camel@apache/camel
    Copy to Clipboard Toggle word wrap
54.3.1.2. 使用 JBang 运行路由

假设有一个名为 route.yaml 的文件,其中包含此内容:

- route:
    from:
      uri: "kamelet:timer-source"
      parameters:
        period: 10000
        message: 'test'
      steps:
        - to:
            uri: "kamelet:log-sink"
Copy to Clipboard Toggle word wrap

现在,您可以直接使用以下命令运行它。

camel run route.yaml
Copy to Clipboard Toggle word wrap

54.3.2. Knative Action

您可以使用 mask-field-action Kamelet 作为 Knative 绑定中的中间步骤。

mask-field-action-binding.yaml

apiVersion: camel.apache.org/v1
kind: Pipe
metadata:
  name: mask-field-action-binding
spec:
  source:
    ref:
      kind: Kamelet
      apiVersion: camel.apache.org/v1
      name: timer-source
    properties:
      message: "Hello"
  steps:
  - ref:
      kind: Kamelet
      apiVersion: camel.apache.org/v1
      name: mask-field-action
    properties:
      fields: "The Fields"
      replacement: "The Replacement"
  sink:
    ref:
      kind: Channel
      apiVersion: messaging.knative.dev/v1
      name: mychannel
Copy to Clipboard Toggle word wrap

54.3.3. Kafka 操作

您可以使用 mask-field-action Kamelet 作为 Kafka 绑定中的中间步骤。

mask-field-action-binding.yaml

apiVersion: camel.apache.org/v1
kind: Pipe
metadata:
  name: mask-field-action-binding
spec:
  source:
    ref:
      kind: Kamelet
      apiVersion: camel.apache.org/v1
      name: timer-source
    properties:
      message: "Hello"
  steps:
  - ref:
      kind: Kamelet
      apiVersion: camel.apache.org/v1
      name: mask-field-action
    properties:
      fields: "The Fields"
      replacement: "The Replacement"
  sink:
    ref:
      kind: KafkaTopic
      apiVersion: kafka.strimzi.io/v1beta1
      name: my-topic
Copy to Clipboard Toggle word wrap

54.4. kamelets 源文件

https://github.com/jboss-fuse/camel-kamelets/blob/camel-kamelets-4.10.3-branch/kamelets/mask-field-action.kamelet.yaml

第 55 章 Message Timestamp Router Action

更新 topic 字段作为原始主题名称和记录的 timestamp 字段的功能。

55.1. 配置选项

下表总结了 message-timestamp-router-action Kamelet 的配置选项:

Expand
属性名称描述类型默认示例

timestampKeys *

时间戳密钥

以逗号分隔的 Timestamp 键列表。时间戳取自第一个找到的字段。

字符串

  

timestampFormat

时间戳格式

与 java.text.SimpleDateFormat 兼容的时间戳的格式字符串。

字符串

yyyyMMdd

 

timestampKeyFormat

时间戳密钥格式

时间戳密钥的格式。可能的值有 时间戳,或者任何与 java.text.SimpleDateFormat 兼容的时间戳格式字符串。如果 时间戳,自 1970 年起,该字段将评估为毫秒(作为 UNIX Timestamp)。

字符串

timestamp

 

topicFormat

主题格式

格式字符串,可分别包含 '$[topic]' 和 '$[timestamp]' 作为主题和时间戳的占位符。

字符串

topic-$[timestamp]

 

* = 标记为星号的字段 是必需的

55.2. 依赖项

55.2.1. Quarkus 依赖项

<dependencies>
  <dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifact>camel-quarkus-core</artifact>
  </dependency>
  <dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifact>camel-quarkus-jackson</artifact>
  </dependency>
  <dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifact>camel-quarkus-kafka</artifact>
  </dependency>
  <dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifact>camel-quarkus-kamelet</artifact>
  </dependency>
  <dependency>
    <groupId>org.apache.camel.kamelets</groupId>
    <artifact>camel-kamelets-utils</artifact>
    <version>4.8.5</version>
  </dependency>
</dependencies>
Copy to Clipboard Toggle word wrap

55.3. 使用方法

55.3.1. Camel JBang 用法

55.3.1.1. JBang 的先决条件
  • 安装 JBang
  • 您已执行以下命令:

    jbang app install camel@apache/camel
    Copy to Clipboard Toggle word wrap
55.3.1.2. 使用 JBang 运行路由

假设有一个名为 route.yaml 的文件,其中包含此内容:

- route:
    from:
      uri: "kamelet:timer-source"
      parameters:
        period: 10000
        message: 'test'
      steps:
        - to:
            uri: "kamelet:log-sink"
Copy to Clipboard Toggle word wrap

现在,您可以直接使用以下命令运行它。

camel run route.yaml
Copy to Clipboard Toggle word wrap

55.3.2. Knative Action

您可以使用 message-timestamp-router-action Kamelet 作为 Knative 绑定中的中间步骤。

message-timestamp-router-action-binding.yaml

apiVersion: camel.apache.org/v1
kind: Pipe
metadata:
  name: message-timestamp-router-action-binding
spec:
  source:
    ref:
      kind: Kamelet
      apiVersion: camel.apache.org/v1
      name: timer-source
    properties:
      message: "Hello"
  steps:
  - ref:
      kind: Kamelet
      apiVersion: camel.apache.org/v1
      name: message-timestamp-router-action
    properties:
      timestampKeys: "The Timestamp Keys"
  sink:
    ref:
      kind: Channel
      apiVersion: messaging.knative.dev/v1
      name: mychannel
Copy to Clipboard Toggle word wrap

55.3.3. Kafka 操作

您可以使用 message-timestamp-router-action Kamelet 作为 Kafka 绑定中的中间步骤。

message-timestamp-router-action-binding.yaml

apiVersion: camel.apache.org/v1
kind: Pipe
metadata:
  name: message-timestamp-router-action-binding
spec:
  source:
    ref:
      kind: Kamelet
      apiVersion: camel.apache.org/v1
      name: timer-source
    properties:
      message: "Hello"
  steps:
  - ref:
      kind: Kamelet
      apiVersion: camel.apache.org/v1
      name: message-timestamp-router-action
    properties:
      timestampKeys: "The Timestamp Keys"
  sink:
    ref:
      kind: KafkaTopic
      apiVersion: kafka.strimzi.io/v1beta1
      name: my-topic
Copy to Clipboard Toggle word wrap

55.4. kamelets 源文件

https://github.com/jboss-fuse/camel-kamelets/blob/camel-kamelets-4.10.3-branch/kamelets/message-timestamp-router-action.kamelet.yaml

第 56 章 MongoDB Sink

将数据发送到 MongoDB。

此 Kamelet 需要 JSON 格式的正文。

在标头中,您可以设置 db-upsert / ce-dbupsert 属性,指定数据库是否应该创建元素(如果不存在)。

56.1. 配置选项

下表总结了 mongodb-sink Kamelet 可用的选项:

Expand
属性名称描述类型默认示例

collection *

MongoDB Collection

要绑定到此端点的 MongoDB 集合的名称。

字符串

  

Database *

MongoDB 数据库

MongoDB 数据库的名称。

字符串

  

Hosts *

MongoDB 主机

host:port 格式以逗号分隔的 MongoDB 主机地址列表。

字符串

  

createCollection

集合

如果集合在初始化期间不存在,则创建它。

布尔值

False

 

password

MongoDB 密码

用于访问 MongoDB 的用户密码。

字符串

  

ssl

为 Mongodb 连接启用 Ssl

是否启用到 mongodb 的 ssl 连接。

布尔值

True

 

sslValidationEnabled

启用 Ssl 证书验证和主机名检查。

因为可能会造成安全问题,这应该只在测试环境中禁用。

布尔值

True

 

username

MongoDB 用户名

用于访问 MongoDB 的用户名。

字符串

  

writeConcern

写 Concern

MongoDB 为写入操作请求的确认级别。

字符串

  

* = 标记为星号的字段 是必需的

56.2. 依赖项

56.2.1. Quarkus 依赖项

<dependencies>
  <dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifact>camel-quarkus-core</artifact>
  </dependency>
  <dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifact>camel-quarkus-jackson</artifact>
  </dependency>
  <dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifact>camel-quarkus-kamelet</artifact>
  </dependency>
  <dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifact>camel-quarkus-mongodb</artifact>
  </dependency>
  <dependency>
    <groupId>org.apache.camel.kamelets</groupId>
    <artifact>camel-kamelets-utils</artifact>
    <version>4.8.5</version>
  </dependency>
</dependencies>
Copy to Clipboard Toggle word wrap

56.3. 使用方法

56.3.1. Camel JBang 用法

56.3.1.1. JBang 的先决条件
  • 安装 JBang
  • 您已执行以下命令:

    jbang app install camel@apache/camel
    Copy to Clipboard Toggle word wrap
56.3.1.2. 使用 JBang 运行路由

假设有一个名为 route.yaml 的文件,其中包含此内容:

- route:
    from:
      uri: "kamelet:timer-source"
      parameters:
        period: 10000
        message: 'test'
      steps:
        - to:
            uri: "kamelet:log-sink"
Copy to Clipboard Toggle word wrap

现在,您可以直接使用以下命令运行它。

camel run route.yaml
Copy to Clipboard Toggle word wrap

56.3.2. Knative Sink

您可以通过将 mongodb-sink Kamelet 绑定到 Knative 对象来使用 mongodb-sink Kamelet 作为 Knative sink。

mongodb-sink-binding.yaml

apiVersion: camel.apache.org/v1
kind: Pipe
metadata:
  name: mongodb-sink-binding
spec:
  source:
    ref:
      kind: Channel
      apiVersion: messaging.knative.dev/v1
      name: mychannel
  sink:
    ref:
      kind: Kamelet
      apiVersion: camel.apache.org/v1
      name: mongodb-sink
    properties:
      collection: "The MongoDB Collection"
      database: "The MongoDB Database"
      hosts: "The MongoDB Hosts"
Copy to Clipboard Toggle word wrap

56.3.3. Kafka Sink

您可以通过将 mongodb-sink Kamelet 绑定到 Kafka 主题来将 mongodb-sink Kamelet 用作 Kafka sink。

mongodb-sink-binding.yaml

apiVersion: camel.apache.org/v1
kind: Pipe
metadata:
  name: mongodb-sink-binding
spec:
  source:
    ref:
      kind: KafkaTopic
      apiVersion: kafka.strimzi.io/v1beta1
      name: my-topic
  sink:
    ref:
      kind: Kamelet
      apiVersion: camel.apache.org/v1
      name: mongodb-sink
    properties:
      collection: "The MongoDB Collection"
      database: "The MongoDB Database"
      hosts: "The MongoDB Hosts"
Copy to Clipboard Toggle word wrap

56.4. kamelets 源文件

https://github.com/jboss-fuse/camel-kamelets/blob/camel-kamelets-4.10.3-branch/kamelets/mongodb-sink.kamelet.yaml

第 57 章 MongoDB 源

使用 MongoDB 中的数据。

如果启用 persistentTailTracking 属性,消费者会跟踪最后使用的消息,并在下一次重启时,消耗的消耗会重启该消息。如果启用 persistentTailTracking,则必须为 tailTrackIncreasingField 属性提供一个值(默认为 optional)。

如果您禁用 persistentTailTracking 属性,消费者消耗整个集合并等待新数据使用。

提供数据的集合必须是 capped 集合。

57.1. 配置选项

下表总结了 mongodb-source Kamelet 可用的选项:

Expand
属性名称描述类型默认示例

collection *

MongoDB Collection

要绑定到此端点的 MongoDB 集合的名称。

字符串

  

Database *

MongoDB 数据库

MongoDB 数据库的名称。

字符串

  

Hosts *

MongoDB 主机

host:port 格式以逗号分隔的 MongoDB 主机地址列表。

字符串

  

password

MongoDB 密码

用于访问 MongoDB 的用户密码。

字符串

  

persistentTailTracking

MongoDB Persistent Tail Tracking

指定启用持久性尾部跟踪,这是跟踪系统重启后最近使用的数据的机制。系统下次启动时,端点会从上一次停止的 consuimg 数据的位置恢复光标。此选项仅适用于 capped 集合。

布尔值

False

 

ssl

为 Mongodb 连接启用 Ssl

是否启用到 mongodb 的 ssl 连接

布尔值

True

 

sslValidationEnabled

启用 Ssl 证书验证和主机名检查。

因为可能会造成安全问题,这应该只在测试环境中禁用。

布尔值

True

 

tailTrackIncreasingField

MongoDB Tail Track Increasing 字段

传入数据中的关联字段是不断增长的,用于在每次生成时定位尾部光标。

字符串

  

username

MongoDB 用户名

用于访问 MongoDB 的用户名。用户名必须存在于 MongoDB 的身份验证数据库(authenticationDatabase)中。默认情况下,MongoDB authenticationDatabase 是 'admin'。

字符串

  

* = 标记为星号的字段 是必需的

57.2. 依赖项

57.2.1. Quarkus 依赖项

<dependencies>
  <dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifact>camel-quarkus-jackson</artifact>
  </dependency>
  <dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifact>camel-quarkus-kamelet</artifact>
  </dependency>
  <dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifact>camel-quarkus-mongodb</artifact>
  </dependency>
  <dependency>
    <groupId>org.apache.camel.kamelets</groupId>
    <artifact>camel-kamelets-utils</artifact>
    <version>4.8.5</version>
  </dependency>
</dependencies>
Copy to Clipboard Toggle word wrap

57.3. 使用方法

57.3.1. Camel JBang 用法

57.3.1.1. JBang 的先决条件
  • 安装 JBang
  • 您已执行以下命令:

    jbang app install camel@apache/camel
    Copy to Clipboard Toggle word wrap
57.3.1.2. 使用 JBang 运行路由

假设有一个名为 route.yaml 的文件,其中包含此内容:

- route:
    from:
      uri: "kamelet:timer-source"
      parameters:
        period: 10000
        message: 'test'
      steps:
        - to:
            uri: "kamelet:log-sink"
Copy to Clipboard Toggle word wrap

现在,您可以直接使用以下命令运行它。

camel run route.yaml
Copy to Clipboard Toggle word wrap

57.3.2. Knative Source

您可以通过将 mongodb-source Kamelet 绑定到 Knative 对象来使用 mongodb-source Kamelet 作为 Knative 源。

mongodb-source-binding.yaml

apiVersion: camel.apache.org/v1
kind: Pipe
metadata:
  name: mongodb-source-binding
spec:
  source:
    ref:
      kind: Kamelet
      apiVersion: camel.apache.org/v1
      name: mongodb-source
    properties:
      collection: "The MongoDB Collection"
      database: "The MongoDB Database"
      hosts: "The MongoDB Hosts"
      password: "The MongoDB Password"
      username: "The MongoDB Username"
  sink:
    ref:
      kind: Channel
      apiVersion: messaging.knative.dev/v1
      name: mychannel
Copy to Clipboard Toggle word wrap

57.3.3. Kafka 源

您可以通过将 mongodb-source Kamelet 绑定到 Kafka 主题来将 mongodb-source Kamelet 用作 Kafka 源。

mongodb-source-binding.yaml

apiVersion: camel.apache.org/v1
kind: Pipe
metadata:
  name: mongodb-source-binding
spec:
  source:
    ref:
      kind: Kamelet
      apiVersion: camel.apache.org/v1
      name: mongodb-source
    properties:
      collection: "The MongoDB Collection"
      database: "The MongoDB Database"
      hosts: "The MongoDB Hosts"
      password: "The MongoDB Password"
      username: "The MongoDB Username"
  sink:
    ref:
      kind: KafkaTopic
      apiVersion: kafka.strimzi.io/v1beta1
      name: my-topic
Copy to Clipboard Toggle word wrap

57.4. kamelets 源文件

https://github.com/jboss-fuse/camel-kamelets/blob/camel-kamelets-4.10.3-branch/kamelets/mongodb-source.kamelet.yaml

第 58 章 MySQL Sink

将数据发送到 MySQL 数据库。

在 Pipe 文件中,您必须在 spec→integration→dependencies 中明确声明 SQL Server 驱动程序依赖项:

spec:
  ...
  integration:
      ...
      dependencies:
      - "mvn:mysql:mysql-connector-java:<version>"
Copy to Clipboard Toggle word wrap

此 Kamelet 需要 JSON 格式的正文。使用 key:value 对来映射 JSON 字段和参数。例如,以下是一个查询:

'INSERT INTO accounts (username,city) VALUES (:"username,: failingcity)'

以下是示例查询的输入示例:

'{ "username":"oscerd", "city":"Rome"}'

58.1. 配置选项

下表总结了 mysql-sink Kamelet 可用的选项:

Expand
属性名称描述类型默认示例

databaseName *

数据库名称

MySQL 数据库的名称。

字符串

  

password *

密码

用于访问安全 MySQL 数据库的密码。

字符串

  

query *

查询

要针对 MySQL 数据库执行的查询。

字符串

 

INSERT INTO 帐户(username,city) VALUES (:"username,:#city)

serverName *

服务器名称

数据源的服务器名称。

字符串

 

localhost

username *

用户名

用于访问安全 MySQL 数据库的用户名。

字符串

  

serverPort

服务器端口

数据源的服务器端口。

字符串

3306

 

* = 标记为星号的字段 是必需的

58.2. 依赖项

58.2.1. Quarkus 依赖项

<dependencies>
  <dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifact>camel-quarkus-jackson</artifact>
  </dependency>
  <dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifact>camel-quarkus-kamelet</artifact>
  </dependency>
  <dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifact>camel-quarkus-sql</artifact>
  </dependency>
  <dependency>
    <groupId>org.apache.camel.kamelets</groupId>
    <artifact>camel-kamelets-utils</artifact>
    <version>4.8.5</version>
  </dependency>
  <dependency>
    <groupId>org.apache.commons</groupId>
    <artifact>commons-dbcp2</artifact>
    <version>2.13.0</version>
  </dependency>
</dependencies>
Copy to Clipboard Toggle word wrap

58.3. 使用方法

58.3.1. Camel JBang 用法

58.3.1.1. JBang 的先决条件
  • 安装 JBang
  • 您已执行以下命令:

    jbang app install camel@apache/camel
    Copy to Clipboard Toggle word wrap
58.3.1.2. 使用 JBang 运行路由

假设有一个名为 route.yaml 的文件,其中包含此内容:

- route:
    from:
      uri: "kamelet:timer-source"
      parameters:
        period: 10000
        message: 'test'
      steps:
        - to:
            uri: "kamelet:log-sink"
Copy to Clipboard Toggle word wrap

现在,您可以直接使用以下命令运行它。

camel run route.yaml
Copy to Clipboard Toggle word wrap

58.3.2. Knative Sink

您可以通过将它绑定到 Knative 对象来使用 mysql-sink Kamelet 作为 Knative sink。

mysql-sink-binding.yaml

apiVersion: camel.apache.org/v1
kind: Pipe
metadata:
  name: mysql-sink-binding
spec:
  source:
    ref:
      kind: Channel
      apiVersion: messaging.knative.dev/v1
      name: mychannel
  sink:
    ref:
      kind: Kamelet
      apiVersion: camel.apache.org/v1
      name: mysql-sink
    properties:
      databaseName: "The Database Name"
      password: "The Password"
      query: "INSERT INTO accounts (username,city) VALUES (:#username,:#city)"
      serverName: "localhost"
      username: "The Username"
Copy to Clipboard Toggle word wrap

58.3.3. Kafka Sink

您可以通过将它绑定到 Kafka 主题,使用 mysql-sink Kamelet 作为 Kafka sink。

mysql-sink-binding.yaml

apiVersion: camel.apache.org/v1
kind: Pipe
metadata:
  name: mysql-sink-binding
spec:
  source:
    ref:
      kind: KafkaTopic
      apiVersion: kafka.strimzi.io/v1beta1
      name: my-topic
  sink:
    ref:
      kind: Kamelet
      apiVersion: camel.apache.org/v1
      name: mysql-sink
    properties:
      databaseName: "The Database Name"
      password: "The Password"
      query: "INSERT INTO accounts (username,city) VALUES (:#username,:#city)"
      serverName: "localhost"
      username: "The Username"
Copy to Clipboard Toggle word wrap

58.4. kamelets 源文件

https://github.com/jboss-fuse/camel-kamelets/blob/camel-kamelets-4.10.3-branch/kamelets/mysql-sink.kamelet.yaml

第 59 章 PostgreSQL Sink

将数据发送到 PostgreSQL 数据库。

此 Kamelet 需要 JSON 格式的正文。使用 key:value 对来映射 JSON 字段和参数。例如,以下是一个查询:

'INSERT INTO accounts (username,city) VALUES (:"username,: failingcity)'

以下是示例查询的输入示例:

'{ "username":"oscerd", "city":"Rome"}'

59.1. 配置选项

下表总结了 postgresql-sink Kamelet 可用的选项:

Expand
属性名称描述类型默认示例

databaseName *

数据库名称

PostgreSQL 数据库的名称。

字符串

  

password *

密码

用于访问安全 PostgreSQL 数据库的密码。

字符串

  

query *

查询

要针对 PostgreSQL 数据库执行的查询。

字符串

 

INSERT INTO 帐户(username,city) VALUES (:"username,:#city)

serverName *

服务器名称

数据源的服务器名称。

字符串

 

localhost

username *

用户名

用于访问安全 PostgreSQL 数据库的用户名。

字符串

  

serverPort

服务器端口

数据源的服务器端口。

字符串

5432

 

* = 标记为星号的字段 是必需的

59.2. 依赖项

59.2.1. Quarkus 依赖项

<dependencies>
  <dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifact>camel-quarkus-jackson</artifact>
  </dependency>
  <dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifact>camel-quarkus-kamelet</artifact>
  </dependency>
  <dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifact>camel-quarkus-sql</artifact>
  </dependency>
  <dependency>
    <groupId>org.apache.camel.kamelets</groupId>
    <artifact>camel-kamelets-utils</artifact>
    <version>4.8.5</version>
  </dependency>
  <dependency>
    <groupId>org.apache.commons</groupId>
    <artifact>commons-dbcp2</artifact>
    <version>2.13.0</version>
  </dependency>
  <dependency>
    <groupId>org.postgresql</groupId>
    <artifact>postgresql</artifact>
    <version>42.7.6</version>
  </dependency>
</dependencies>
Copy to Clipboard Toggle word wrap

59.3. 使用方法

59.3.1. Camel JBang 用法

59.3.1.1. JBang 的先决条件
  • 安装 JBang
  • 您已执行以下命令:

    jbang app install camel@apache/camel
    Copy to Clipboard Toggle word wrap
59.3.1.2. 使用 JBang 运行路由

假设有一个名为 route.yaml 的文件,其中包含此内容:

- route:
    from:
      uri: "kamelet:timer-source"
      parameters:
        period: 10000
        message: 'test'
      steps:
        - to:
            uri: "kamelet:log-sink"
Copy to Clipboard Toggle word wrap

现在,您可以直接使用以下命令运行它。

camel run route.yaml
Copy to Clipboard Toggle word wrap

59.3.2. Knative Sink

您可以通过将 postgresql-sink Kamelet 绑定到 Knative 对象来使用 postgresql-sink Kamelet 作为 Knative sink。

postgresql-sink-binding.yaml

apiVersion: camel.apache.org/v1
kind: Pipe
metadata:
  name: postgresql-sink-binding
spec:
  source:
    ref:
      kind: Channel
      apiVersion: messaging.knative.dev/v1
      name: mychannel
  sink:
    ref:
      kind: Kamelet
      apiVersion: camel.apache.org/v1
      name: postgresql-sink
    properties:
      databaseName: "The Database Name"
      password: "The Password"
      query: "INSERT INTO accounts (username,city) VALUES (:#username,:#city)"
      serverName: "localhost"
      username: "The Username"
Copy to Clipboard Toggle word wrap

59.3.3. Kafka Sink

您可以通过将 postgresql-sink Kamelet 绑定到 Kafka 主题来使用 postgresql-sink Kamelet 作为 Kafka sink。

postgresql-sink-binding.yaml

apiVersion: camel.apache.org/v1
kind: Pipe
metadata:
  name: postgresql-sink-binding
spec:
  source:
    ref:
      kind: KafkaTopic
      apiVersion: kafka.strimzi.io/v1beta1
      name: my-topic
  sink:
    ref:
      kind: Kamelet
      apiVersion: camel.apache.org/v1
      name: postgresql-sink
    properties:
      databaseName: "The Database Name"
      password: "The Password"
      query: "INSERT INTO accounts (username,city) VALUES (:#username,:#city)"
      serverName: "localhost"
      username: "The Username"
Copy to Clipboard Toggle word wrap

59.4. kamelets 源文件

https://github.com/jboss-fuse/camel-kamelets/blob/camel-kamelets-4.10.3-branch/kamelets/postgresql-sink.kamelet.yaml

第 60 章 predicate Filter Action

根据 JSONPath Expression 过滤。由于这是一个过滤器,因此表达式是一个负面。这意味着,如果示例的 foo 字段等于 John,则消息将提前显示。否则会过滤掉。

60.1. 配置选项

下表总结了 predicate-filter-action Kamelet 的配置选项:

Expand
属性名称描述类型默认示例

表达式 *

表达式

要评估的 JSONPath 表达式,没有外部括号。由于这是一个过滤器,因此表达式是一个负面。这意味着,如果示例的 foo 字段等于 John,则消息将提前显示。否则会过滤掉。

字符串

 

@.foo =~ /.*John/

* = 标记为星号的字段 是必需的

60.2. 依赖项

60.2.1. Quarkus 依赖项

<dependencies>
  <dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifact>camel-quarkus-core</artifact>
  </dependency>
  <dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifact>camel-quarkus-jsonpath</artifact>
  </dependency>
  <dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifact>camel-quarkus-kamelet</artifact>
  </dependency>
  <dependency>
    <groupId>org.apache.camel.kamelets</groupId>
    <artifact>camel-kamelets-utils</artifact>
    <version>4.8.5</version>
  </dependency>
</dependencies>
Copy to Clipboard Toggle word wrap

60.3. 使用方法

60.3.1. Camel JBang 用法

60.3.1.1. JBang 的先决条件
  • 安装 JBang
  • 您已执行以下命令:

    jbang app install camel@apache/camel
    Copy to Clipboard Toggle word wrap
60.3.1.2. 使用 JBang 运行路由

假设有一个名为 route.yaml 的文件,其中包含此内容:

- route:
    from:
      uri: "kamelet:timer-source"
      parameters:
        period: 10000
        message: 'test'
      steps:
        - to:
            uri: "kamelet:log-sink"
Copy to Clipboard Toggle word wrap

现在,您可以直接使用以下命令运行它。

camel run route.yaml
Copy to Clipboard Toggle word wrap

60.3.2. Knative Action

您可以使用 predicate-filter-action Kamelet 作为 Knative 绑定中的中间步骤。

predicate-filter-action-binding.yaml

apiVersion: camel.apache.org/v1
kind: Pipe
metadata:
  name: predicate-filter-action-binding
spec:
  source:
    ref:
      kind: Kamelet
      apiVersion: camel.apache.org/v1
      name: timer-source
    properties:
      message: "Hello"
  steps:
  - ref:
      kind: Kamelet
      apiVersion: camel.apache.org/v1
      name: predicate-filter-action
    properties:
      expression: "@.foo =~ /.*John/"
  sink:
    ref:
      kind: Channel
      apiVersion: messaging.knative.dev/v1
      name: mychannel
Copy to Clipboard Toggle word wrap

60.3.3. Kafka 操作

您可以使用 predicate-filter-action Kamelet 作为 Kafka 绑定中的中间步骤。

predicate-filter-action-binding.yaml

apiVersion: camel.apache.org/v1
kind: Pipe
metadata:
  name: predicate-filter-action-binding
spec:
  source:
    ref:
      kind: Kamelet
      apiVersion: camel.apache.org/v1
      name: timer-source
    properties:
      message: "Hello"
  steps:
  - ref:
      kind: Kamelet
      apiVersion: camel.apache.org/v1
      name: predicate-filter-action
    properties:
      expression: "@.foo =~ /.*John/"
  sink:
    ref:
      kind: KafkaTopic
      apiVersion: kafka.strimzi.io/v1beta1
      name: my-topic
Copy to Clipboard Toggle word wrap

60.4. kamelets 源文件

https://github.com/jboss-fuse/camel-kamelets/blob/camel-kamelets-4.10.3-branch/kamelets/predicate-filter-action.kamelet.yaml

第 61 章 protobuf 反序列化操作

反序列化有效负载到 Protobuf。

61.1. 配置选项

下表总结了 protobuf-deserialize-action Kamelet 可用的选项:

Expand
属性名称描述类型默认示例

schema

模式

在序列化过程中使用的 Protobuf 模式(单行)

字符串

 

message Person { required string first = 1; required string last = 2; }

* = 标记为星号的字段 是必需的

61.2. 依赖项

61.2.1. Quarkus 依赖项

<dependencies>
  <dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifact>camel-quarkus-core</artifact>
  </dependency>
  <dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifact>camel-quarkus-jackson-protobuf</artifact>
  </dependency>
  <dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifact>camel-quarkus-kamelet</artifact>
  </dependency>
  <dependency>
    <groupId>org.apache.camel.kamelets</groupId>
    <artifact>camel-kamelets-utils</artifact>
    <version>4.8.5</version>
  </dependency>
</dependencies>
Copy to Clipboard Toggle word wrap

61.3. 使用方法

61.3.1. Camel JBang 用法

61.3.1.1. JBang 的先决条件
  • 安装 JBang
  • 您已执行以下命令:

    jbang app install camel@apache/camel
    Copy to Clipboard Toggle word wrap
61.3.1.2. 使用 JBang 运行路由

假设有一个名为 route.yaml 的文件,其中包含此内容:

- route:
    from:
      uri: "kamelet:timer-source"
      parameters:
        period: 10000
        message: 'test'
      steps:
        - to:
            uri: "kamelet:log-sink"
Copy to Clipboard Toggle word wrap

现在,您可以直接使用以下命令运行它。

camel run route.yaml
Copy to Clipboard Toggle word wrap

61.3.2. Knative Action

您可以使用 protobuf-deserialize-action Kamelet 作为 Knative 绑定中的中间步骤。

protobuf-deserialize-action-binding.yaml

apiVersion: camel.apache.org/v1
kind: Pipe
metadata:
  name: protobuf-deserialize-action-binding
spec:
  source:
    ref:
      kind: Kamelet
      apiVersion: camel.apache.org/v1
      name: timer-source
    properties:
      message: '{"first": "John", "last":"Doe"}'
  steps:
  - ref:
      kind: Kamelet
      apiVersion: camel.apache.org/v1
      name: json-deserialize-action
  - ref:
      kind: Kamelet
      apiVersion: camel.apache.org/v1
      name: protobuf-serialize-action
    properties:
      schema: "message Person { required string first [id="protobuf_deserialize_action_1;_required_string_last_=_2;_}""][id="protobuf_deserialize_action_1;_required_string_last_=_2;_}""] = 1; required string last = 2; }"
  - ref:
      kind: Kamelet
      apiVersion: camel.apache.org/v1
      name: protobuf-deserialize-action
    properties:
      schema: "message Person { required string first [id="protobuf_deserialize_action_1;_required_string_last_=_2;_}""]
[id="protobuf_deserialize_action_1;_required_string_last_=_2;_}""] = 1; required string last = 2; }"
  sink:
    ref:
      kind: Channel
      apiVersion: messaging.knative.dev/v1
      name: mychannel
Copy to Clipboard Toggle word wrap

61.3.3. Kafka 操作

您可以使用 protobuf-deserialize-action Kamelet 作为 Kafka 绑定中的中间步骤。

protobuf-deserialize-action-binding.yaml

apiVersion: camel.apache.org/v1
kind: Pipe
metadata:
  name: protobuf-deserialize-action-binding
spec:
  source:
    ref:
      kind: Kamelet
      apiVersion: camel.apache.org/v1
      name: timer-source
    properties:
      message: '{"first": "John", "last":"Doe"}'
  steps:
  - ref:
      kind: Kamelet
      apiVersion: camel.apache.org/v1
      name: json-deserialize-action
  - ref:
      kind: Kamelet
      apiVersion: camel.apache.org/v1
      name: protobuf-serialize-action
    properties:
      schema: "message Person { required string first [id="protobuf_deserialize_action_1;_required_string_last_=_2;_}""]
[id="protobuf_deserialize_action_1;_required_string_last_=_2;_}""]= 1; required string last = 2; }"
  - ref:
      kind: Kamelet
      apiVersion: camel.apache.org/v1
      name: protobuf-deserialize-action
    properties:
      schema: "message Person { required string first [id="protobuf_deserialize_action_1;_required_string_last_=_2;_}""]
[id="protobuf_deserialize_action_1;_required_string_last_=_2;_}""]= 1; required string last = 2; }"
  sink:
    ref:
      kind: KafkaTopic
      apiVersion: kafka.strimzi.io/v1beta1
      name: my-topic
Copy to Clipboard Toggle word wrap

61.4. kamelets 源文件

https://github.com/jboss-fuse/camel-kamelets/blob/camel-kamelets-4.10.3-branch/kamelets/protobuf-deserialize-action.kamelet.yaml

第 62 章 protobuf Serialize Action

序列化有效负载到 Protobuf。

62.1. 配置选项

下表总结了 protobuf-serialize-action Kamelet 可用的选项:

Expand
属性名称描述类型默认示例

schema

模式

在序列化过程中使用的 Protobuf 模式(单行)

字符串

 

message Person { required string first = 1; required string last = 2; }

* = 标记为星号的字段 是必需的

62.2. 依赖项

62.2.1. Quarkus 依赖项

<dependencies>
  <dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifact>camel-quarkus-core</artifact>
  </dependency>
  <dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifact>camel-quarkus-jackson-protobuf</artifact>
  </dependency>
  <dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifact>camel-quarkus-kamelet</artifact>
  </dependency>
  <dependency>
    <groupId>org.apache.camel.kamelets</groupId>
    <artifact>camel-kamelets-utils</artifact>
    <version>4.8.5</version>
  </dependency>
</dependencies>
Copy to Clipboard Toggle word wrap

62.3. 使用方法

62.3.1. Camel JBang 用法

62.3.1.1. JBang 的先决条件
  • 安装 JBang
  • 您已执行以下命令:

    jbang app install camel@apache/camel
    Copy to Clipboard Toggle word wrap
62.3.1.2. 使用 JBang 运行路由

假设有一个名为 route.yaml 的文件,其中包含此内容:

- route:
    from:
      uri: "kamelet:timer-source"
      parameters:
        period: 10000
        message: 'test'
      steps:
        - to:
            uri: "kamelet:log-sink"
Copy to Clipboard Toggle word wrap

现在,您可以直接使用以下命令运行它。

camel run route.yaml
Copy to Clipboard Toggle word wrap

62.3.2. Knative Action

您可以使用 protobuf-serialize-action Kamelet 作为 Knative 绑定中的中间步骤。

protobuf-serialize-action-binding.yaml

apiVersion: camel.apache.org/v1
kind: Pipe
metadata:
  name: protobuf-serialize-action-binding
spec:
  source:
    ref:
      kind: Kamelet
      apiVersion: camel.apache.org/v1
      name: timer-source
    properties:
      message: '{"first": "John", "last":"Doe"}'
  steps:
  - ref:
      kind: Kamelet
      apiVersion: camel.apache.org/v1
      name: json-deserialize-action
  - ref:
      kind: Kamelet
      apiVersion: camel.apache.org/v1
      name: protobuf-serialize-action
    properties:
      schema: "message Person { required string first [id="protobuf_serialize_action_1;_required_string_last_=_2;_}""] = 1; required string last = 2; }"
  sink:
    ref:
      kind: Channel
      apiVersion: messaging.knative.dev/v1
      name: mychannel
Copy to Clipboard Toggle word wrap

62.3.3. Kafka 操作

您可以使用 protobuf-serialize-action Kamelet 作为 Kafka 绑定中的中间步骤。

protobuf-serialize-action-binding.yaml

apiVersion: camel.apache.org/v1
kind: Pipe
metadata:
  name: protobuf-serialize-action-binding
spec:
  source:
    ref:
      kind: Kamelet
      apiVersion: camel.apache.org/v1
      name: timer-source
    properties:
      message: '{"first": "John", "last":"Doe"}'
  steps:
  - ref:
      kind: Kamelet
      apiVersion: camel.apache.org/v1
      name: json-deserialize-action
  - ref:
      kind: Kamelet
      apiVersion: camel.apache.org/v1
      name: protobuf-serialize-action
    properties:
      schema: "message Person { required string first [id="protobuf_serialize_action_1;_required_string_last_=_2;_}""] = 1; required string last = 2; }"
  sink:
    ref:
      kind: KafkaTopic
      apiVersion: kafka.strimzi.io/v1beta1
      name: my-topic
Copy to Clipboard Toggle word wrap

62.4. kamelets 源文件

https://github.com/jboss-fuse/camel-kamelets/blob/camel-kamelets-4.10.3-branch/kamelets/protobuf-serialize-action.kamelet.yaml

第 63 章 正则表达式路由器操作

使用配置的正则表达式和替换字符串更新目的地。

63.1. 配置选项

下表总结了 regex-router-action Kamelet 可用的选项:

Expand
属性名称描述类型默认示例

regex *

regex

目的地的正则表达式

字符串

  

替换 *

替换

匹配时替换

字符串

  

* = 标记为星号的字段 是必需的

63.2. 依赖项

63.2.1. Quarkus 依赖项

<dependencies>
  <dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifact>camel-quarkus-core</artifact>
  </dependency>
  <dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifact>camel-quarkus-kafka</artifact>
  </dependency>
  <dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifact>camel-quarkus-kamelet</artifact>
  </dependency>
  <dependency>
    <groupId>org.apache.camel.kamelets</groupId>
    <artifact>camel-kamelets-utils</artifact>
    <version>4.8.5</version>
  </dependency>
</dependencies>
Copy to Clipboard Toggle word wrap

63.3. 使用方法

63.3.1. Camel JBang 用法

63.3.1.1. JBang 的先决条件
  • 安装 JBang
  • 您已执行以下命令:

    jbang app install camel@apache/camel
    Copy to Clipboard Toggle word wrap
63.3.1.2. 使用 JBang 运行路由

假设有一个名为 route.yaml 的文件,其中包含此内容:

- route:
    from:
      uri: "kamelet:timer-source"
      parameters:
        period: 10000
        message: 'test'
      steps:
        - to:
            uri: "kamelet:log-sink"
Copy to Clipboard Toggle word wrap

现在,您可以直接使用以下命令运行它。

camel run route.yaml
Copy to Clipboard Toggle word wrap

63.3.2. Knative Action

您可以使用 regex-router-action Kamelet 作为 Knative 绑定中的中间步骤。

regex-router-action-binding.yaml

apiVersion: camel.apache.org/v1
kind: Pipe
metadata:
  name: regex-router-action-binding
spec:
  source:
    ref:
      kind: Kamelet
      apiVersion: camel.apache.org/v1
      name: timer-source
    properties:
      message: "Hello"
  steps:
  - ref:
      kind: Kamelet
      apiVersion: camel.apache.org/v1
      name: regex-router-action
    properties:
      regex: "The Regex"
      replacement: "The Replacement"
  sink:
    ref:
      kind: Channel
      apiVersion: messaging.knative.dev/v1
      name: mychannel
Copy to Clipboard Toggle word wrap

63.3.3. Kafka 操作

您可以使用 regex-router-action Kamelet 作为 Kafka 绑定中的中间步骤。

regex-router-action-binding.yaml

apiVersion: camel.apache.org/v1
kind: Pipe
metadata:
  name: regex-router-action-binding
spec:
  source:
    ref:
      kind: Kamelet
      apiVersion: camel.apache.org/v1
      name: timer-source
    properties:
      message: "Hello"
  steps:
  - ref:
      kind: Kamelet
      apiVersion: camel.apache.org/v1
      name: regex-router-action
    properties:
      regex: "The Regex"
      replacement: "The Replacement"
  sink:
    ref:
      kind: KafkaTopic
      apiVersion: kafka.strimzi.io/v1beta1
      name: my-topic
Copy to Clipboard Toggle word wrap

63.4. kamelets 源文件

https://github.com/jboss-fuse/camel-kamelets/blob/camel-kamelets-4.10.3-branch/kamelets/regex-router-action.kamelet.yaml

第 64 章 替换 Field Action

使用传输消息中的不同键替换 field。

所需的参数 重命名 是一个以冒号分隔的重命名对列表,如 foo:bar,abc:xyz,它代表字段重命名映射。

enabled 可选参数表示要包含的字段。如果指定,则生成的消息中仅包含命名的字段。

可选参数 disabled 代表要排除的字段。如果指定,列出的字段将不包括在结果消息中。这优先于 enabled 参数。

enabled 参数的默认值为,因此包括有效负载中的所有字段。

disabled 参数的默认值为 none,因此有效负载中的任何字段不会被排除。

64.1. 配置选项

下表总结了可用于 replace-field-action Kamelet 的配置选项:

Expand
属性名称描述类型默认示例

重命名 *

重命名

带有要重命名的新值的以逗号分隔的字段列表

字符串

 

foo:bar,c1:c2

disabled

Disabled

要禁用的以逗号分隔的字段列表

字符串

none

 

enabled

Enabled

要启用的以逗号分隔的字段列表

字符串

all

 

* = 标记为星号的字段 是必需的

64.2. 依赖项

64.2.1. Quarkus 依赖项

<dependencies>
  <dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifact>camel-quarkus-core</artifact>
  </dependency>
  <dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifact>camel-quarkus-jackson</artifact>
  </dependency>
  <dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifact>camel-quarkus-kafka</artifact>
  </dependency>
  <dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifact>camel-quarkus-kamelet</artifact>
  </dependency>
  <dependency>
    <groupId>org.apache.camel.kamelets</groupId>
    <artifact>camel-kamelets-utils</artifact>
    <version>4.8.5</version>
  </dependency>
</dependencies>
Copy to Clipboard Toggle word wrap

64.3. 使用方法

64.3.1. Camel JBang 用法

64.3.1.1. JBang 的先决条件
  • 安装 JBang
  • 您已执行以下命令:

    jbang app install camel@apache/camel
    Copy to Clipboard Toggle word wrap
64.3.1.2. 使用 JBang 运行路由

假设有一个名为 route.yaml 的文件,其中包含此内容:

- route:
    from:
      uri: "kamelet:timer-source"
      parameters:
        period: 10000
        message: 'test'
      steps:
        - to:
            uri: "kamelet:log-sink"
Copy to Clipboard Toggle word wrap

现在,您可以直接使用以下命令运行它。

camel run route.yaml
Copy to Clipboard Toggle word wrap

64.3.2. Knative Action

您可以使用 replace-field-action Kamelet 作为 Knative 绑定中的中间步骤。

replace-field-action-binding.yaml

apiVersion: camel.apache.org/v1
kind: Pipe
metadata:
  name: replace-field-action-binding
spec:
  source:
    ref:
      kind: Kamelet
      apiVersion: camel.apache.org/v1
      name: timer-source
    properties:
      message: "Hello"
  steps:
  - ref:
      kind: Kamelet
      apiVersion: camel.apache.org/v1
      name: replace-field-action
    properties:
      renames: "foo:bar,c1:c2"
  sink:
    ref:
      kind: Channel
      apiVersion: messaging.knative.dev/v1
      name: mychannel
Copy to Clipboard Toggle word wrap

64.3.3. Kafka 操作

您可以使用 replace-field-action Kamelet 作为 Kafka 绑定中的中间步骤。

replace-field-action-binding.yaml

apiVersion: camel.apache.org/v1
kind: Pipe
metadata:
  name: replace-field-action-binding
spec:
  source:
    ref:
      kind: Kamelet
      apiVersion: camel.apache.org/v1
      name: timer-source
    properties:
      message: "Hello"
  steps:
  - ref:
      kind: Kamelet
      apiVersion: camel.apache.org/v1
      name: replace-field-action
    properties:
      renames: "foo:bar,c1:c2"
  sink:
    ref:
      kind: KafkaTopic
      apiVersion: kafka.strimzi.io/v1beta1
      name: my-topic
Copy to Clipboard Toggle word wrap

64.4. kamelets 源文件

https://github.com/jboss-fuse/camel-kamelets/blob/camel-kamelets-4.10.3-branch/kamelets/replace-field-action.kamelet.yaml

第 65 章 salesforce Source

从 Salesforce 接收更新。

65.1. 配置选项

下表总结了 salesforce-source Kamelet 可用的选项:

Expand
属性名称描述类型默认示例

clientId *

消费者密钥

Salesforce 应用程序消费者密钥。

字符串

  

clientSecret *

消费者 Secret

Salesforce 应用程序消费者机密。

字符串

  

password *

密码

Salesforce 用户密码。

字符串

  

query *

查询

在 Salesforce 上执行的查询。

字符串

 

SELECT Id, Name, Email, Phone FROM Contact

topicName *

主题名称

主题或频道的名称。

字符串

 

ContactTopic

userName *

用户名

Salesforce 用户名。

字符串

  

loginUrl

登录 URL

Salesforce 实例登录 URL。

字符串

https://login.salesforce.com

 

notifyForFields

notify For 字段

通知字段。

字符串

ALL

 

notifyForOperationCreate

通知操作创建

notify 用于创建操作。

布尔值

True

 

notifyForOperationDelete

通知操作删除

通知 delete 操作。

布尔值

False

 

notifyForOperationUndelete

通知 Operation Undelete

通知未删除操作。

布尔值

False

 

notifyForOperationUpdate

通知操作更新

通知更新操作。

布尔值

False

 

operation

操作

要使用的操作

字符串

订阅

 

rawPayload

raw Payload

将原始有效负载字符串用于请求和响应(JSON 或 XML 根据格式),而不是 DTOs,默认为 false。

布尔值

False

 

replayId

replay Id

订阅 Streaming API 时使用的 replayId 值。

long

  

* = 标记为星号的字段 是必需的

65.2. 依赖项

65.2.1. Quarkus 依赖项

<dependencies>
  <dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifact>camel-quarkus-jackson</artifact>
  </dependency>
  <dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifact>camel-quarkus-kamelet</artifact>
  </dependency>
  <dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifact>camel-quarkus-salesforce</artifact>
  </dependency>
  <dependency>
    <groupId>org.apache.camel.kamelets</groupId>
    <artifact>camel-kamelets-utils</artifact>
    <version>4.8.5</version>
  </dependency>
</dependencies>
Copy to Clipboard Toggle word wrap

65.3. 使用方法

65.3.1. Camel JBang 用法

65.3.1.1. JBang 的先决条件
  • 安装 JBang
  • 您已执行以下命令:

    jbang app install camel@apache/camel
    Copy to Clipboard Toggle word wrap
65.3.1.2. 使用 JBang 运行路由

假设有一个名为 route.yaml 的文件,其中包含此内容:

- route:
    from:
      uri: "kamelet:timer-source"
      parameters:
        period: 10000
        message: 'test'
      steps:
        - to:
            uri: "kamelet:log-sink"
Copy to Clipboard Toggle word wrap

现在,您可以直接使用以下命令运行它。

camel run route.yaml
Copy to Clipboard Toggle word wrap

65.3.2. Knative Source

您可以通过将 salesforce-source Kamelet 绑定到 Knative 对象来使用 salesforce-source Kamelet 作为 Knative 源。

salesforce-source-binding.yaml

apiVersion: camel.apache.org/v1
kind: Pipe
metadata:
  name: salesforce-source-binding
spec:
  source:
    ref:
      kind: Kamelet
      apiVersion: camel.apache.org/v1
      name: salesforce-source
    properties:
      clientId: "The Consumer Key"
      clientSecret: "The Consumer Secret"
      password: "The Password"
      query: "SELECT Id, Name, Email, Phone FROM Contact"
      topicName: "ContactTopic"
      userName: "The Username"
  sink:
    ref:
      kind: Channel
      apiVersion: messaging.knative.dev/v1
      name: mychannel
Copy to Clipboard Toggle word wrap

65.3.3. Kafka 源

您可以通过将 salesforce-source Kamelet 绑定到 Kafka 主题来将 salesforce-source Kamelet 用作 Kafka 源。

salesforce-source-binding.yaml

apiVersion: camel.apache.org/v1
kind: Pipe
metadata:
  name: salesforce-source-binding
spec:
  source:
    ref:
      kind: Kamelet
      apiVersion: camel.apache.org/v1
      name: salesforce-source
    properties:
      clientId: "The Consumer Key"
      clientSecret: "The Consumer Secret"
      password: "The Password"
      query: "SELECT Id, Name, Email, Phone FROM Contact"
      topicName: "ContactTopic"
      userName: "The Username"
  sink:
    ref:
      kind: KafkaTopic
      apiVersion: kafka.strimzi.io/v1beta1
      name: my-topic
Copy to Clipboard Toggle word wrap

65.4. kamelets 源文件

https://github.com/jboss-fuse/camel-kamelets/blob/camel-kamelets-4.10.3-branch/kamelets/salesforce-source.kamelet.yaml

第 66 章 salesforce Create Sink

在 Salesforce 中创建对象。

消息的正文必须包含 Salesforce 对象的 JSON,例如: { "Phone": "555", "Name": "Antonia", "LastName": "Garcia" }

66.1. 配置选项

下表总结了 salesforce-create-sink Kamelet 可用的选项:

Expand
属性名称描述类型默认示例

clientId *

消费者密钥

Salesforce 应用程序消费者密钥。

字符串

  

clientSecret *

消费者 Secret

Salesforce 应用程序消费者机密。

字符串

  

password *

密码

Salesforce 用户密码。

字符串

  

userName *

用户名

Salesforce 用户名。

字符串

  

loginUrl

登录 URL

Salesforce 实例登录 URL。

字符串

https://login.salesforce.com

 

sObjectName

对象名称

对象的类型。

字符串

 

联系

* = 标记为星号的字段 是必需的

66.2. 依赖项

66.2.1. Quarkus 依赖项

<dependencies>
  <dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifact>camel-quarkus-kamelet</artifact>
  </dependency>
  <dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifact>camel-quarkus-salesforce</artifact>
  </dependency>
  <dependency>
    <groupId>org.apache.camel.kamelets</groupId>
    <artifact>camel-kamelets-utils</artifact>
    <version>4.8.5</version>
  </dependency>
</dependencies>
Copy to Clipboard Toggle word wrap

66.3. 使用方法

66.4. kamelets 源文件

https://github.com/jboss-fuse/camel-kamelets/blob/camel-kamelets-4.10.3-branch/kamelets/salesforce-create-sink.kamelet.yaml

第 67 章 salesforce Delete Sink

从 Salesforce 中删除对象。

数据正文必须是 JSON 格式的,它必须包含两个键: sObjectIdsObjectName。For example: { "sObjectId": "XXXXX0", "sObjectName": "Contact" }

67.1. 配置选项

下表总结了 salesforce-delete-sink Kamelet 可用的选项:

Expand
属性名称描述类型默认示例

clientId *

消费者密钥

Salesforce 应用程序消费者密钥。

字符串

  

clientSecret *

消费者 Secret

Salesforce 应用程序消费者机密。

字符串

  

password *

密码

Salesforce 用户密码。

字符串

  

userName *

用户名

Salesforce 用户名。

字符串

  

loginUrl

登录 URL

Salesforce 实例登录 URL。

字符串

https://login.salesforce.com

 

* = 标记为星号的字段 是必需的

67.2. 依赖项

67.2.1. Quarkus 依赖项

<dependencies>
  <dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifact>camel-quarkus-core</artifact>
  </dependency>
  <dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifact>camel-quarkus-jsonpath</artifact>
  </dependency>
  <dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifact>camel-quarkus-kamelet</artifact>
  </dependency>
  <dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifact>camel-quarkus-salesforce</artifact>
  </dependency>
  <dependency>
    <groupId>org.apache.camel.kamelets</groupId>
    <artifact>camel-kamelets-utils</artifact>
    <version>4.8.5</version>
  </dependency>
</dependencies>
Copy to Clipboard Toggle word wrap

67.3. 使用方法

67.4. kamelets 源文件

https://github.com/jboss-fuse/camel-kamelets/blob/camel-kamelets-4.10.3-branch/kamelets/salesforce-delete-sink.kamelet.yaml

第 68 章 salesforce Update Sink

更新 Salesforce 中的对象。

接收的正文必须包含每个属性的 JSON 键值对,以便在 payload 属性中更新,例如:

{ "payload": { "Phone": "1234567890", "Name": "Antonia" } }

接收的正文必须包含 sObjectNamesObjectId 属性,例如:

{ "payload": { "Phone": "1234567890", "Name": "Antonia" }, "sObjectId": "sObjectId", "sObjectName": "sObjectName" }

68.1. 配置选项

下表总结了 salesforce-update-sink Kamelet 可用的选项:

Expand
属性名称描述类型默认示例

clientId *

消费者密钥

Salesforce 应用程序消费者密钥。

字符串

  

clientSecret *

消费者 Secret

Salesforce 应用程序消费者机密。

字符串

  

password *

密码

Salesforce 用户密码。

字符串

  

userName *

用户名

Salesforce 用户名。

字符串

  

loginUrl

登录 URL

Salesforce 实例登录 URL。

字符串

https://login.salesforce.com

 

* = 标记为星号的字段 是必需的

68.2. 依赖项

68.2.1. Quarkus 依赖项

<dependencies>
  <dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifact>camel-quarkus-core</artifact>
  </dependency>
  <dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifact>camel-quarkus-jackson</artifact>
  </dependency>
  <dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifact>camel-quarkus-jsonpath</artifact>
  </dependency>
  <dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifact>camel-quarkus-kamelet</artifact>
  </dependency>
  <dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifact>camel-quarkus-salesforce</artifact>
  </dependency>
  <dependency>
    <groupId>org.apache.camel.kamelets</groupId>
    <artifact>camel-kamelets-utils</artifact>
    <version>4.8.5</version>
  </dependency>
</dependencies>
Copy to Clipboard Toggle word wrap

68.3. 使用方法

68.4. kamelets 源文件

https://github.com/jboss-fuse/camel-kamelets/blob/camel-kamelets-4.10.3-branch/kamelets/salesforce-update-sink.kamelet.yaml

第 69 章 SFTP Sink

将数据发送到 SFTP 服务器。

在标头中,您可以设置 file / ce-file 属性来指定要上传的文件名。

如果您没有在标头中设置属性,则 Kamelet 将交换 ID 用于文件名。

69.1. 配置选项

下表总结了 sftp-sink Kamelet 可用的选项:

Expand
属性名称描述类型默认示例

connectionHost *

连接主机

FTP 服务器的主机名。

字符串

  

connectionPort *

连接端口

FTP 服务器的端口。

字符串

22

 

directoryName *

目录名称

起始目录。

字符串

  

autoCreate

autocreate Missing directory

自动创建文件应写入的目录。

布尔值

True

 

二进制

二进制

指定文件传输模式 BINARY 或 ASCII。默认为 ASCII (false)。

布尔值

False

 

fileExist

文件存储

如果文件已存在,如何的行为。

字符串

override

 

passiveMode

被动模式

指定使用被动模式连接。

布尔值

False

 

password

密码

用于访问 FTP 服务器的密码。

字符串

  

privateKeyFile

私钥文件

设置私钥文件,以便 SFTP 端点可以验证私钥。

字符串

  

privateKeyPassphrase

私钥密码

设置私钥文件密码短语,以便 SFTP 端点可以进行私钥验证。

字符串

  

privateKeyUri

私钥 URI

设置私钥文件(默认为从 classpath 加载),以便 SFTP 端点可以进行私钥验证。

字符串

  

strictHostKeyChecking

严格主机检查

设置是否使用严格的主机密钥检查。

字符串

False

 

useUserKnownHostsFile

使用用户已知的主机文件

如果没有明确配置 knownHostFile,则使用 System.getProperty (user.home)/.ssh/known_hosts 中的主机文件。

布尔值

True

 

username

用户名

用于访问 FTP 服务器的用户名。

字符串

  

* = 标记为星号的字段 是必需的

69.2. 依赖项

69.2.1. Quarkus 依赖项

<dependencies>
  <dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifact>camel-quarkus-core</artifact>
  </dependency>
  <dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifact>camel-quarkus-ftp</artifact>
  </dependency>
  <dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifact>camel-quarkus-kamelet</artifact>
  </dependency>
  <dependency>
    <groupId>org.apache.camel.kamelets</groupId>
    <artifact>camel-kamelets-utils</artifact>
    <version>4.8.5</version>
  </dependency>
</dependencies>
Copy to Clipboard Toggle word wrap

69.3. 使用方法

69.3.1. Camel JBang 用法

69.3.1.1. JBang 的先决条件
  • 安装 JBang
  • 您已执行以下命令:

    jbang app install camel@apache/camel
    Copy to Clipboard Toggle word wrap
69.3.1.2. 使用 JBang 运行路由

假设有一个名为 route.yaml 的文件,其中包含此内容:

- route:
    from:
      uri: "kamelet:timer-source"
      parameters:
        period: 10000
        message: 'test'
      steps:
        - to:
            uri: "kamelet:log-sink"
Copy to Clipboard Toggle word wrap

现在,您可以直接使用以下命令运行它。

camel run route.yaml
Copy to Clipboard Toggle word wrap

69.3.2. Knative Sink

您可以通过将它绑定到 Knative 对象来使用 sftp-sink Kamelet 作为 Knative sink。

sftp-sink-binding.yaml

apiVersion: camel.apache.org/v1
kind: Pipe
metadata:
  name: sftp-sink-binding
spec:
  source:
    ref:
      kind: Channel
      apiVersion: messaging.knative.dev/v1
      name: mychannel
  sink:
    ref:
      kind: Kamelet
      apiVersion: camel.apache.org/v1
      name: sftp-sink
    properties:
      connectionHost: "The Connection Host"
      directoryName: "The Directory Name"
      password: "The Password"
      username: "The Username"
Copy to Clipboard Toggle word wrap

69.3.3. Kafka Sink

您可以通过将 sftp-sink Kamelet 绑定到 Kafka 主题来使用 sftp-sink Kamelet 作为 Kafka sink。

sftp-sink-binding.yaml

apiVersion: camel.apache.org/v1
kind: Pipe
metadata:
  name: sftp-sink-binding
spec:
  source:
    ref:
      kind: KafkaTopic
      apiVersion: kafka.strimzi.io/v1beta1
      name: my-topic
  sink:
    ref:
      kind: Kamelet
      apiVersion: camel.apache.org/v1
      name: sftp-sink
    properties:
      connectionHost: "The Connection Host"
      directoryName: "The Directory Name"
      password: "The Password"
      username: "The Username"
Copy to Clipboard Toggle word wrap

69.4. kamelets 源文件

https://github.com/jboss-fuse/camel-kamelets/blob/camel-kamelets-4.10.3-branch/kamelets/sftp-sink.kamelet.yaml

第 70 章 SFTP 源

从 SFTP 服务器接收数据。

70.1. 配置选项

下表总结了 sftp-source Kamelet 可用的选项:

Expand
属性名称描述类型默认示例

connectionHost *

连接主机

SFTP 服务器的主机名。

字符串

  

connectionPort *

连接端口

FTP 服务器的端口。

字符串

22

 

directoryName *

目录名称

起始目录。

字符串

  

autoCreate

autocreate Missing directory

自动创建起始目录。

布尔值

True

 

二进制

二进制

指定文件传输模式 BINARY 或 ASCII。默认为 ASCII (false)。

布尔值

False

 

delete

删除

如果为 true,则在成功处理后会删除该文件。

布尔值

False

 

idempotent

idempotency

跳过已处理的文件。

布尔值

True

 

ignoreFileNotFoundOrPermissionError

忽略文件没有被发现的权限错误

是否忽略 when (尝试列出目录中的文件或下载文件时),但不存在,还是因为权限错误。默认情况下,当目录或文件不存在或权限不足时,会抛出异常。将这个选项设置为 true 可忽略它。

布尔值

False

 

passiveMode

被动模式

设置被动模式连接。

布尔值

False

 

password

密码

用于访问 SFTP 服务器的密码。

字符串

  

privateKeyFile

私钥文件

设置私钥文件,以便 SFTP 端点可以验证私钥。

字符串

  

privateKeyPassphrase

私钥密码

设置私钥文件密码短语,以便 SFTP 端点可以进行私钥验证。

字符串

  

privateKeyUri

私钥 URI

设置私钥文件(默认为从 classpath 加载),以便 SFTP 端点可以进行私钥验证。

字符串

  

递归

递归

如果一个目录,也查找所有子目录中的文件。

布尔值

False

 

strictHostKeyChecking

严格主机检查

设置是否使用严格的主机密钥检查。

字符串

False

 

useUserKnownHostsFile

使用用户已知的主机文件

如果没有明确配置 knownHostFile,则使用 System.getProperty (user.home)/.ssh/known_hosts 中的主机文件。

布尔值

True

 

username

用户名

用于访问 SFTP 服务器的用户名。

字符串

  

* = 标记为星号的字段 是必需的

70.2. 依赖项

70.2.1. Quarkus 依赖项

<dependencies>
  <dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifact>camel-quarkus-core</artifact>
  </dependency>
  <dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifact>camel-quarkus-ftp</artifact>
  </dependency>
  <dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifact>camel-quarkus-kamelet</artifact>
  </dependency>
  <dependency>
    <groupId>org.apache.camel.kamelets</groupId>
    <artifact>camel-kamelets-utils</artifact>
    <version>4.8.5</version>
  </dependency>
</dependencies>
Copy to Clipboard Toggle word wrap

70.3. 使用方法

70.3.1. Camel JBang 用法

70.3.1.1. JBang 的先决条件
  • 安装 JBang
  • 您已执行以下命令:

    jbang app install camel@apache/camel
    Copy to Clipboard Toggle word wrap
70.3.1.2. 使用 JBang 运行路由

假设有一个名为 route.yaml 的文件,其中包含此内容:

- route:
    from:
      uri: "kamelet:timer-source"
      parameters:
        period: 10000
        message: 'test'
      steps:
        - to:
            uri: "kamelet:log-sink"
Copy to Clipboard Toggle word wrap

现在,您可以直接使用以下命令运行它。

camel run route.yaml
Copy to Clipboard Toggle word wrap

70.3.2. Knative Source

您可以通过将 sftp-source Kamelet 绑定到 Knative 对象来使用 sftp-source Kamelet 作为 Knative 源。

sftp-source-binding.yaml

apiVersion: camel.apache.org/v1
kind: Pipe
metadata:
  name: sftp-source-binding
spec:
  source:
    ref:
      kind: Kamelet
      apiVersion: camel.apache.org/v1
      name: sftp-source
    properties:
      connectionHost: "The Connection Host"
      directoryName: "The Directory Name"
      password: "The Password"
      username: "The Username"
  sink:
    ref:
      kind: Channel
      apiVersion: messaging.knative.dev/v1
      name: mychannel
Copy to Clipboard Toggle word wrap

70.3.3. Kafka 源

您可以通过将 sftp-source Kamelet 绑定到 Kafka 主题来使用 sftp-source Kamelet 作为 Kafka 源。

sftp-source-binding.yaml

apiVersion: camel.apache.org/v1
kind: Pipe
metadata:
  name: sftp-source-binding
spec:
  source:
    ref:
      kind: Kamelet
      apiVersion: camel.apache.org/v1
      name: sftp-source
    properties:
      connectionHost: "The Connection Host"
      directoryName: "The Directory Name"
      password: "The Password"
      username: "The Username"
  sink:
    ref:
      kind: KafkaTopic
      apiVersion: kafka.strimzi.io/v1beta1
      name: my-topic
Copy to Clipboard Toggle word wrap

70.4. kamelets 源文件

https://github.com/jboss-fuse/camel-kamelets/blob/camel-kamelets-4.10.3-branch/kamelets/sftp-source.kamelet.yaml

第 71 章 简单过滤器操作

基于简单表达式过滤。

71.1. 配置选项

下表总结了 simple-filter-action Kamelet 可用的选项:

Expand
属性名称描述类型默认示例

表达式 *

简单表达式

在交换上应用的简单表达式来过滤某些交换

字符串

  

* = 标记为星号的字段 是必需的

71.2. 依赖项

71.2.1. Quarkus 依赖项

<dependencies>
  <dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifact>camel-quarkus-core</artifact>
  </dependency>
  <dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifact>camel-quarkus-kamelet</artifact>
  </dependency>
  <dependency>
    <groupId>org.apache.camel.kamelets</groupId>
    <artifact>camel-kamelets-utils</artifact>
    <version>4.8.5</version>
  </dependency>
</dependencies>
Copy to Clipboard Toggle word wrap

71.3. 使用方法

71.3.1. Camel JBang 用法

71.3.1.1. JBang 的先决条件
  • 安装 JBang
  • 您已执行以下命令:

    jbang app install camel@apache/camel
    Copy to Clipboard Toggle word wrap
71.3.1.2. 使用 JBang 运行路由

假设有一个名为 route.yaml 的文件,其中包含此内容:

- route:
    from:
      uri: "kamelet:timer-source"
      parameters:
        period: 10000
        message: 'test'
      steps:
        - to:
            uri: "kamelet:log-sink"
Copy to Clipboard Toggle word wrap

现在,您可以直接使用以下命令运行它。

camel run route.yaml
Copy to Clipboard Toggle word wrap

71.4. kamelets 源文件

https://github.com/jboss-fuse/camel-kamelets/blob/camel-kamelets-4.10.3-branch/kamelets/simple-filter-action.kamelet.yaml

第 72 章 Slack 源

从 Slack 频道接收消息。

72.1. 配置选项

下表总结了 slack-source Kamelet 可用的选项:

Expand
属性名称描述类型默认示例

channel *

Channel

用于接收信息的 Slack 频道。

字符串

 

#myroom

token *

令牌

Bot 用户 OAuth 访问令牌来访问 Slack。需要具有以下权限的 Slack 应用程序: channels:history,groups:history,im:history,mpim:history,channels:read,groups:read, im:read ,im:read, and mpim:read.

字符串

  

delay

delay

轮询之间的延迟。如果没有提供单位,则默认为毫秒。

字符串

60000

60s 或 6000 或 1m

naturalOrder

自然顺序

以自然顺序创建交换(最旧的到最新)或未创建交换。

布尔值

False

 

serverUrl

服务器 URL

Slack API 服务器端点 URL。

字符串

https://slack.com

https://slack.com

* = 标记为星号的字段 是必需的

72.2. 依赖项

72.2.1. Quarkus 依赖项

<dependencies>
  <dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifact>camel-quarkus-gson</artifact>
  </dependency>
  <dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifact>camel-quarkus-kamelet</artifact>
  </dependency>
  <dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifact>camel-quarkus-slack</artifact>
  </dependency>
  <dependency>
    <groupId>org.apache.camel.kamelets</groupId>
    <artifact>camel-kamelets-utils</artifact>
    <version>4.8.5</version>
  </dependency>
</dependencies>
Copy to Clipboard Toggle word wrap

72.3. 使用方法

72.3.1. Camel JBang 用法

72.3.1.1. JBang 的先决条件
  • 安装 JBang
  • 您已执行以下命令:

    jbang app install camel@apache/camel
    Copy to Clipboard Toggle word wrap
72.3.1.2. 使用 JBang 运行路由

假设有一个名为 route.yaml 的文件,其中包含此内容:

- route:
    from:
      uri: "kamelet:timer-source"
      parameters:
        period: 10000
        message: 'test'
      steps:
        - to:
            uri: "kamelet:log-sink"
Copy to Clipboard Toggle word wrap

现在,您可以直接使用以下命令运行它。

camel run route.yaml
Copy to Clipboard Toggle word wrap

72.3.2. Knative Source

您可以通过将 slack-source Kamelet 绑定到 Knative 对象来使用 slack-source Kamelet 作为 Knative 源。

slack-source-binding.yaml

apiVersion: camel.apache.org/v1
kind: Pipe
metadata:
  name: slack-source-binding
spec:
  source:
    ref:
      kind: Kamelet
      apiVersion: camel.apache.org/v1
      name: slack-source
    properties:
      channel: "#myroom"
      token: "The Token"
  sink:
    ref:
      kind: Channel
      apiVersion: messaging.knative.dev/v1
      name: mychannel
Copy to Clipboard Toggle word wrap

72.3.3. Kafka 源

您可以通过将 slack-source Kamelet 绑定到 Kafka 主题来将 slack-source Kamelet 用作 Kafka 源。

slack-source-binding.yaml

apiVersion: camel.apache.org/v1
kind: Pipe
metadata:
  name: slack-source-binding
spec:
  source:
    ref:
      kind: Kamelet
      apiVersion: camel.apache.org/v1
      name: slack-source
    properties:
      channel: "#myroom"
      token: "The Token"
  sink:
    ref:
      kind: KafkaTopic
      apiVersion: kafka.strimzi.io/v1beta1
      name: my-topic
Copy to Clipboard Toggle word wrap

72.4. kamelets 源文件

https://github.com/jboss-fuse/camel-kamelets/blob/camel-kamelets-4.10.3-branch/kamelets/slack-source.kamelet.yaml

第 73 章 Splunk Sink

使用"提交"或"流"模式将数据发送到 Splunk。

有效负载需要采用 json 格式。

73.1. 配置选项

下表总结了 mvapich -sink Kamelet 可用的选项:

Expand
属性名称描述类型默认示例

password *

密码

向 Splunk 服务器进行身份验证的密码。

字符串

  

serverHostname *

Splunk 服务器地址

Splunk 服务器的地址。

字符串

 

my_server_splunk.com

username *

用户名

向 Splunk 服务器进行身份验证的用户名。

字符串

  

app

Splunk App

Splunk 中的应用程序名称。

字符串

  

connectionTimeout

连接超时

连接到 Splunk 服务器时的超时时间(以毫秒为单位)

整数

5000

 

index

索引

要写入的 Splunk 索引。

字符串

  

模式

模式

将事件发布到 Splunk 的模式。

字符串

 

protocol

协议

连接到 Splunk 服务器.

字符串

https

 

serverPort

Splunk 服务器端口

Splunk 服务器的地址。

整数

8089

 

source

Source

数据的源名字段。

字符串

  

sourceType

源类型

数据的源名字段。

字符串

  

* = 标记为星号的字段 是必需的

73.2. 依赖项

73.2.1. Quarkus 依赖项

<dependencies>
  <dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifact>camel-quarkus-core</artifact>
  </dependency>
  <dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifact>camel-quarkus-kamelet</artifact>
  </dependency>
  <dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifact>camel-quarkus-splunk</artifact>
  </dependency>
  <dependency>
    <groupId>org.apache.camel.kamelets</groupId>
    <artifact>camel-kamelets-utils</artifact>
    <version>4.8.5</version>
  </dependency>
</dependencies>
Copy to Clipboard Toggle word wrap

73.3. 使用方法

73.3.1. Camel JBang 用法

73.3.1.1. Jbang 的先决条件
  • 安装 JBang
  • 运行以下命令 ,将 camel 安装为 JBang 命令

    jbang app install camel@apache/camel
    Copy to Clipboard Toggle word wrap

例如,有一个名为 route.yaml 的文件,其中包含此内容。

- route:
    from:
      uri: "kamelet:timer-source"
      parameters:
        period: 10000
        message: 'test'
      steps:
        - to:
            uri: "kamelet:log-sink"
Copy to Clipboard Toggle word wrap

您可以直接通过以下命令运行它。

camel run route.yaml
Copy to Clipboard Toggle word wrap

73.3.2. Kafka Sink

您可以通过将 mvapich -sink Kamelet 绑定到 Kafka 主题,将它用作 Kafka sink。

splunk-sink-binding.yaml

apiVersion: camel.apache.org/v1
kind: Pipe
metadata:
  name: splunk-sink-binding
spec:
  source:
    ref:
      kind: KafkaTopic
      apiVersion: kafka.strimzi.io/v1beta1
      name: my-topic
  sink:
    ref:
      kind: Kamelet
      apiVersion: camel.apache.org/v1
      name: splunk-sink
    properties:
      password: The Password
      serverHostname: my_server_splunk.com
      username: The Username
Copy to Clipboard Toggle word wrap

73.3.3. Kafka 的先决条件

  • 安装 Strimzi
  • 您必须在当前命名空间中创建一个名为 my-topic 的主题。
73.3.3.1. 在 Kafka 中使用集群 CLI 的步骤
  1. mvapich-sink-binding.yaml 文件保存到本地驱动器中,然后根据您的配置需要编辑该文件。
  2. 使用以下命令运行 sink:

    kubectl apply -f splunk-sink-binding.yaml
    Copy to Clipboard Toggle word wrap
73.3.3.2. 在 Kafka 中使用 Kamel CLI 的步骤

使用以下命令配置并运行 sink。

kamel bind splunk-sink -p "sink.password=The Password" -p "sink.serverHostname=my_server_splunk.com" -p "sink.username=The Username" kafka.strimzi.io/v1beta1:KafkaTopic:my-topic
Copy to Clipboard Toggle word wrap

此命令在集群的当前命名空间中创建 Pipe。

73.4. kamelets 源文件

https://github.com/jboss-fuse/camel-kamelets/blob/camel-kamelets-4.10.3-branch/kamelets/splunk-sink.kamelet.yaml

第 74 章 Splunk Source

以 json 格式从 Splunk 检索数据和输出。

对于接受时间指定符(如 earliestTime )的字段,Splunk 接受各种格式,请参阅 Splunk 文档以了解更多信息。

74.1. 配置选项

下表总结了 mvapich -source Kamelet 可用的选项:

Expand
属性名称描述类型默认示例

initEarliestTime *

init 早期时间

第一个搜索的初始开始偏移。

字符串

 

05/17/22 08:35:46:456

password *

密码

向 Splunk 服务器进行身份验证的密码。

字符串

  

query *

查询

要运行的 Splunk 查询。

字符串

  

serverHostname *

Splunk 服务器地址

Splunk 服务器的地址。

字符串

 

my_server_splunk.com

username *

用户名

向 Splunk 服务器进行身份验证的用户名。

字符串

  

app

Splunk App

Splunk 中的应用程序名称。

字符串

  

connectionTimeout

连接超时

连接到 Splunk 服务器时的超时时间(以毫秒为单位)

整数

  

数�

数量

要返回的最大实体数。

整数

  

delay

delay

下一次轮询前的毫秒数。

整数

  

earliestTime

最早的时间

搜索时间窗的最早时间。

字符串

 

05/17/22 08:35:46:456

index

索引

要写入的 Splunk 索引。

字符串

  

latestTime

最新时间

搜索时间窗的最新时间。

字符串

 

05/17/22 08:35:46:456

protocol

协议

连接到 Splunk 服务器.

字符串

https

 

重复

重复

触发的最大数量。

整数

  

serverPort

Splunk 服务器端口

Splunk 服务器的地址。

整数

8089

 

source

Source

数据的源名字段。

字符串

  

sourceType

源类型

数据的源名字段。

字符串

  

* = 标记为星号的字段 是必需的

74.2. 依赖项

74.2.1. Quarkus 依赖项

<dependencies>
  <dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifact>camel-quarkus-core</artifact>
  </dependency>
  <dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifact>camel-quarkus-jackson</artifact>
  </dependency>
  <dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifact>camel-quarkus-kamelet</artifact>
  </dependency>
  <dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifact>camel-quarkus-splunk</artifact>
  </dependency>
  <dependency>
    <groupId>com.fasterxml.jackson.datatype</groupId>
    <artifact>jackson-datatype-joda</artifact>
    <version>2.12.5</version>
  </dependency>
  <dependency>
    <groupId>org.apache.camel.kamelets</groupId>
    <artifact>camel-kamelets-utils</artifact>
    <version>4.8.5</version>
  </dependency>
</dependencies>
Copy to Clipboard Toggle word wrap

74.3. 使用方法

74.3.1. Camel JBang 用法

74.3.1.1. Jbang 的先决条件
  • 您必须已安装了 JBang
  • 您必须已执行以下命令。
jbang app install camel@apache/camel
Copy to Clipboard Toggle word wrap

例如,有一个名为 route.yaml 的文件,其中包含此内容。

- route:
    from:
      uri: "kamelet:timer-source"
      parameters:
        period: 10000
        message: 'test'
      steps:
        - to:
            uri: "kamelet:log-sink"
Copy to Clipboard Toggle word wrap

现在,您可以直接使用以下命令运行它

camel run route.yaml
Copy to Clipboard Toggle word wrap

74.3.2. Knative Source

您必须通过将 mvapich -source Kamelet 绑定到 Knative 对象来使用 mvapich-source Kamelet 作为 Knative 源。

splunk-source-binding.yaml

apiVersion: camel.apache.org/v1
kind: Pipe
metadata:
  name: splunk-source-binding
spec:
  source:
    ref:
      kind: Kamelet
      apiVersion: camel.apache.org/v1
      name: splunk-source
    properties:
      initEarliestTime: 05/17/22 08:35:46:456
      password: The Password
      query: The Query
      serverHostname: my_server_splunk.com
      username: The Username
  sink:
    ref:
      kind: Channel
      apiVersion: messaging.knative.dev/v1
      name: mychannel
Copy to Clipboard Toggle word wrap

74.3.3. Kafka 源

您必须通过将 mvapich -source Kamelet 绑定到 Kafka 主题来将 mvapich-source Kamelet 用作 Kafka 源。

splunk-source-binding.yaml

apiVersion: camel.apache.org/v1
kind: Pipe
metadata:
  name: splunk-source-binding
spec:
  source:
    ref:
      kind: Kamelet
      apiVersion: camel.apache.org/v1
      name: splunk-source
    properties:
      initEarliestTime: 05/17/22 08:35:46:456
      password: The Password
      query: The Query
      serverHostname: my_server_splunk.com
      username: The Username
  sink:
    ref:
      kind: KafkaTopic
      apiVersion: kafka.strimzi.io/v1beta1
      name: my-topic
Copy to Clipboard Toggle word wrap

74.4. kamelets 源文件

https://github.com/jboss-fuse/camel-kamelets/blob/camel-kamelets-4.10.3-branch/kamelets/splunk-source.kamelet.yaml

第 75 章 Microsoft SQL Server Sink

将数据发送到 Microsoft SQL Server 数据库。

在 Pipe 文件中,您必须在 spec→integration→dependencies 中明确声明 SQL Server 驱动程序依赖项:

  • "mvn:com.microsoft.sqlserver:mssql-jdbc:<version>"

此 Kamelet 需要 JSON 格式的正文。使用 key:value 对来映射 JSON 字段和参数。例如,以下是一个查询:

'INSERT INTO accounts (username,city) VALUES (:"username,: failingcity)'

以下是示例查询的输入示例:

'{ "username":"oscerd", "city":"Rome"}'

75.1. 配置选项

下表总结了 sqlserver-sink Kamelet 可用的选项:

Expand
属性名称描述类型默认示例

databaseName *

数据库名称

SQL Server 数据库的名称。

字符串

  

password *

密码

用于访问安全 SQL Server 数据库的密码。

字符串

  

query *

查询

要针对 SQL Server 数据库执行的查询。

字符串

 

INSERT INTO 帐户(username,city) VALUES (:"username,:#city)

serverName *

服务器名称

数据源的服务器名称。

字符串

 

localhost

username *

用户名

用于访问安全 SQL Server 数据库的用户名。

字符串

  

encrypt

加密连接

加密与 SQL Server 的连接。

布尔值

False

 

serverPort

服务器端口

数据源的服务器端口。

字符串

1433

 

trustServerCertificate

信任服务器证书

信任服务器证书

布尔值

True

 

* = 标记为星号的字段 是必需的

75.2. 依赖项

75.2.1. Quarkus 依赖项

<dependencies>
  <dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifact>camel-quarkus-jackson</artifact>
  </dependency>
  <dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifact>camel-quarkus-kamelet</artifact>
  </dependency>
  <dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifact>camel-quarkus-sql</artifact>
  </dependency>
  <dependency>
    <groupId>org.apache.camel.kamelets</groupId>
    <artifact>camel-kamelets-utils</artifact>
    <version>4.8.5</version>
  </dependency>
  <dependency>
    <groupId>org.apache.commons</groupId>
    <artifact>commons-dbcp2</artifact>
    <version>2.13.0</version>
  </dependency>
</dependencies>
Copy to Clipboard Toggle word wrap

75.3. 使用方法

75.3.1. Camel JBang 用法

75.3.1.1. JBang 的先决条件
  • 安装 JBang
  • 您已执行以下命令:

    jbang app install camel@apache/camel
    Copy to Clipboard Toggle word wrap
75.3.1.2. 使用 JBang 运行路由

假设有一个名为 route.yaml 的文件,其中包含此内容:

- route:
    from:
      uri: "kamelet:timer-source"
      parameters:
        period: 10000
        message: 'test'
      steps:
        - to:
            uri: "kamelet:log-sink"
Copy to Clipboard Toggle word wrap

现在,您可以直接使用以下命令运行它。

camel run route.yaml
Copy to Clipboard Toggle word wrap

75.3.2. Knative Sink

您可以通过将 sqlserver-sink Kamelet 绑定到 Knative 对象来使用 sqlserver-sink Kamelet 作为 Knative sink。

sqlserver-sink-binding.yaml

apiVersion: camel.apache.org/v1
kind: Pipe
metadata:
  name: sqlserver-sink-binding
spec:
  source:
    ref:
      kind: Channel
      apiVersion: messaging.knative.dev/v1
      name: mychannel
  sink:
    ref:
      kind: Kamelet
      apiVersion: camel.apache.org/v1
      name: sqlserver-sink
    properties:
      databaseName: "The Database Name"
      password: "The Password"
      query: "INSERT INTO accounts (username,city) VALUES (:#username,:#city)"
      serverName: "localhost"
      username: "The Username"
Copy to Clipboard Toggle word wrap

75.3.3. Kafka Sink

您可以通过将 sqlserver-sink Kamelet 绑定到 Kafka 主题来使用 sqlserver-sink Kamelet 作为 Kafka sink。

sqlserver-sink-binding.yaml

apiVersion: camel.apache.org/v1
kind: Pipe
metadata:
  name: sqlserver-sink-binding
spec:
  source:
    ref:
      kind: KafkaTopic
      apiVersion: kafka.strimzi.io/v1beta1
      name: my-topic
  sink:
    ref:
      kind: Kamelet
      apiVersion: camel.apache.org/v1
      name: sqlserver-sink
    properties:
      databaseName: "The Database Name"
      password: "The Password"
      query: "INSERT INTO accounts (username,city) VALUES (:#username,:#city)"
      serverName: "localhost"
      username: "The Username"
Copy to Clipboard Toggle word wrap

75.4. kamelets 源文件

https://github.com/jboss-fuse/camel-kamelets/blob/camel-kamelets-4.10.3-branch/kamelets/sqlserver-sink.kamelet.yaml

第 76 章 telegram 源

接收人们发送到您的 Telegram bot 的所有消息。

要创建 bot,请使用 Telegram 应用程序联系 @botfather 帐户。

源将以下标头附加到信息:

  • chat-id / ce-chatid :邮件来自的聊天的 ID。

76.1. 配置选项

下表总结了用于 telegram-source Kamelet 的配置选项:

Expand
属性名称描述类型默认示例

authorizationToken *

令牌

在 Telegram 上访问 bot 的令牌。您可以从 Telegram @botfather 获取它。

字符串

  

* = 标记为星号的字段 是必需的

76.2. 依赖项

76.2.1. Quarkus 依赖项

<dependencies>
  <dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifact>camel-quarkus-core</artifact>
  </dependency>
  <dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifact>camel-quarkus-jackson</artifact>
  </dependency>
  <dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifact>camel-quarkus-kamelet</artifact>
  </dependency>
  <dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifact>camel-quarkus-telegram</artifact>
  </dependency>
  <dependency>
    <groupId>org.apache.camel.kamelets</groupId>
    <artifact>camel-kamelets-utils</artifact>
    <version>4.8.5</version>
  </dependency>
</dependencies>
Copy to Clipboard Toggle word wrap

76.3. 使用方法

76.3.1. Camel JBang 用法

76.3.1.1. JBang 的先决条件
  • 安装 JBang
  • 您已执行以下命令:

    jbang app install camel@apache/camel
    Copy to Clipboard Toggle word wrap
76.3.1.2. 使用 JBang 运行路由

假设有一个名为 route.yaml 的文件,其中包含此内容:

- route:
    from:
      uri: "kamelet:timer-source"
      parameters:
        period: 10000
        message: 'test'
      steps:
        - to:
            uri: "kamelet:log-sink"
Copy to Clipboard Toggle word wrap

现在,您可以直接使用以下命令运行它。

camel run route.yaml
Copy to Clipboard Toggle word wrap

76.3.2. Knative Source

您可以通过将 telegram-source Kamelet 绑定到 Knative 对象来使用 telegram-source Kamelet 作为 Knative 源。

telegram-source-binding.yaml

apiVersion: camel.apache.org/v1
kind: Pipe
metadata:
  name: telegram-source-binding
spec:
  source:
    ref:
      kind: Kamelet
      apiVersion: camel.apache.org/v1
      name: telegram-source
    properties:
      authorizationToken: "The Token"
  sink:
    ref:
      kind: Channel
      apiVersion: messaging.knative.dev/v1
      name: mychannel
Copy to Clipboard Toggle word wrap

76.3.3. Kafka 源

您可以通过将 telegram-source Kamelet 绑定到 Kafka 主题,将它用作 Kafka 源。

telegram-source-binding.yaml

apiVersion: camel.apache.org/v1
kind: Pipe
metadata:
  name: telegram-source-binding
spec:
  source:
    ref:
      kind: Kamelet
      apiVersion: camel.apache.org/v1
      name: telegram-source
    properties:
      authorizationToken: "The Token"
  sink:
    ref:
      kind: KafkaTopic
      apiVersion: kafka.strimzi.io/v1beta1
      name: my-topic
Copy to Clipboard Toggle word wrap

76.4. kamelets 源文件

https://github.com/jboss-fuse/camel-kamelets/blob/camel-kamelets-4.10.3-branch/kamelets/telegram-source.kamelet.yaml

第 77 章 throttle Action

Throttle 操作允许您确保特定的 sink 不会超载。

77.1. 配置选项

下表总结了 throttle-action Kamelet 可用的选项:

Expand
属性名称描述类型默认示例

messages *

消息号

在时间周期集中发送的消息数量

整数

 

10

timePeriod

时间期

设置最大请求计数有效的时间周期(以毫秒为单位)

字符串

1000

 

* = 标记为星号的字段 是必需的

77.2. 依赖项

77.2.1. Quarkus 依赖项

<dependencies>
  <dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifact>camel-quarkus-core</artifact>
  </dependency>
  <dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifact>camel-quarkus-kamelet</artifact>
  </dependency>
  <dependency>
    <groupId>org.apache.camel.kamelets</groupId>
    <artifact>camel-kamelets-utils</artifact>
    <version>4.8.5</version>
  </dependency>
</dependencies>
Copy to Clipboard Toggle word wrap

77.3. 使用方法

77.3.1. Camel JBang 用法

77.3.1.1. JBang 的先决条件
  • 安装 JBang
  • 您已执行以下命令:

    jbang app install camel@apache/camel
    Copy to Clipboard Toggle word wrap
77.3.1.2. 使用 JBang 运行路由

假设有一个名为 route.yaml 的文件,其中包含此内容:

- route:
    from:
      uri: "kamelet:timer-source"
      parameters:
        period: 10000
        message: 'test'
      steps:
        - to:
            uri: "kamelet:log-sink"
Copy to Clipboard Toggle word wrap

现在,您可以直接使用以下命令运行它。

camel run route.yaml
Copy to Clipboard Toggle word wrap

77.3.2. Knative Action

您可以使用 throttle-action Kamelet 作为 Knative 绑定中的中间步骤。

throttle-action-binding.yaml

apiVersion: camel.apache.org/v1
kind: Pipe
metadata:
  name: throttle-action-binding
spec:
  source:
    ref:
      kind: Kamelet
      apiVersion: camel.apache.org/v1
      name: timer-source
    properties:
      message: "Hello"
  steps:
  - ref:
      kind: Kamelet
      apiVersion: camel.apache.org/v1
      name: throttle-action
    properties:
      messages: 1
  sink:
    ref:
      kind: Channel
      apiVersion: messaging.knative.dev/v1
      name: mychannel
Copy to Clipboard Toggle word wrap

77.3.3. Kafka 操作

您可以使用 throttle-action Kamelet 作为 Kafka 绑定中的中间步骤。

throttle-action-binding.yaml

apiVersion: camel.apache.org/v1
kind: Pipe
metadata:
  name: throttle-action-binding
spec:
  source:
    ref:
      kind: Kamelet
      apiVersion: camel.apache.org/v1
      name: timer-source
    properties:
      message: "Hello"
  steps:
  - ref:
      kind: Kamelet
      apiVersion: camel.apache.org/v1
      name: throttle-action
    properties:
      messages: 1
  sink:
    ref:
      kind: KafkaTopic
      apiVersion: kafka.strimzi.io/v1beta1
      name: my-topic
Copy to Clipboard Toggle word wrap

77.4. kamelets 源文件

https://github.com/jboss-fuse/camel-kamelets/blob/camel-kamelets-4.10.3-branch/kamelets/throttle-action.kamelet.yaml

第 78 章 计时器源

使用自定义有效负载生成定期消息。

78.1. 配置选项

下表总结了 timer-source Kamelet 可用的选项:

Expand
属性名称描述类型默认示例

message *

消息

要生成的消息。

字符串

 

您好世界

contentType

内容类型

生成消息的内容类型。

字符串

text/plain

 

周期

时期

生成下一个消息之间等待的时间间隔(以毫秒为单位)。

整数

1000

 

repeatCount

重复计数

指定触发的最大数量

整数

  

* = 标记为星号的字段 是必需的

78.2. 依赖项

78.2.1. Quarkus 依赖项

<dependencies>
  <dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifact>camel-quarkus-core</artifact>
  </dependency>
  <dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifact>camel-quarkus-kamelet</artifact>
  </dependency>
  <dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifact>camel-quarkus-timer</artifact>
  </dependency>
  <dependency>
    <groupId>org.apache.camel.kamelets</groupId>
    <artifact>camel-kamelets-utils</artifact>
    <version>4.8.5</version>
  </dependency>
</dependencies>
Copy to Clipboard Toggle word wrap

78.3. 使用方法

78.3.1. Camel JBang 用法

78.3.1.1. JBang 的先决条件
  • 安装 JBang
  • 您已执行以下命令:

    jbang app install camel@apache/camel
    Copy to Clipboard Toggle word wrap
78.3.1.2. 使用 JBang 运行路由

假设有一个名为 route.yaml 的文件,其中包含此内容:

- route:
    from:
      uri: "kamelet:timer-source"
      parameters:
        period: 10000
        message: 'test'
      steps:
        - to:
            uri: "kamelet:log-sink"
Copy to Clipboard Toggle word wrap

现在,您可以直接使用以下命令运行它。

camel run route.yaml
Copy to Clipboard Toggle word wrap

78.3.2. Knative Source

您可以通过将 timer-source Kamelet 绑定到 Knative 对象来使用 timer-source Kamelet 作为 Knative 源。

timer-source-binding.yaml

apiVersion: camel.apache.org/v1
kind: Pipe
metadata:
  name: timer-source-binding
spec:
  source:
    ref:
      kind: Kamelet
      apiVersion: camel.apache.org/v1
      name: timer-source
    properties:
      message: "hello world"
  sink:
    ref:
      kind: Channel
      apiVersion: messaging.knative.dev/v1
      name: mychannel
Copy to Clipboard Toggle word wrap

78.3.3. Kafka 源

您可以通过将 timer-source Kamelet 绑定到 Kafka 主题来将 timer-source Kamelet 用作 Kafka 源。

timer-source-binding.yaml

apiVersion: camel.apache.org/v1
kind: Pipe
metadata:
  name: timer-source-binding
spec:
  source:
    ref:
      kind: Kamelet
      apiVersion: camel.apache.org/v1
      name: timer-source
    properties:
      message: "hello world"
  sink:
    ref:
      kind: KafkaTopic
      apiVersion: kafka.strimzi.io/v1beta1
      name: my-topic
Copy to Clipboard Toggle word wrap

78.4. kamelets 源文件

https://github.com/jboss-fuse/camel-kamelets/blob/camel-kamelets-4.10.3-branch/kamelets/timer-source.kamelet.yaml

第 79 章 时间戳路由器操作

更新 topic 字段作为原始主题名称和记录时间戳的功能。

79.1. 配置选项

下表总结了用于 timestamp-router-action Kamelet 的配置选项:

Expand
属性名称描述类型默认示例

topicFormat

主题格式

格式字符串,可分别包含 '$[topic]' 和 '$[timestamp]' 作为主题和时间戳的占位符。

字符串

topic-$[timestamp]

 

timestampFormat

时间戳格式

与 java.text.SimpleDateFormat 兼容的时间戳的格式字符串。

字符串

yyyyMMdd

 

timestampHeaderName

时间戳标头名称

包含时间戳的标头名称

字符串

kafka.TIMESTAMP

 

* = 标记为星号的字段 是必需的

79.2. 依赖项

79.2.1. Quarkus 依赖项

<dependencies>
  <dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifact>camel-quarkus-core</artifact>
  </dependency>
  <dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifact>camel-quarkus-kafka</artifact>
  </dependency>
  <dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifact>camel-quarkus-kamelet</artifact>
  </dependency>
  <dependency>
    <groupId>org.apache.camel.kamelets</groupId>
    <artifact>camel-kamelets-utils</artifact>
    <version>4.8.5</version>
  </dependency>
</dependencies>
Copy to Clipboard Toggle word wrap

79.3. 使用方法

79.3.1. Camel JBang 用法

79.3.1.1. JBang 的先决条件
  • 安装 JBang
  • 您已执行以下命令:

    jbang app install camel@apache/camel
    Copy to Clipboard Toggle word wrap
79.3.1.2. 使用 JBang 运行路由

假设有一个名为 route.yaml 的文件,其中包含此内容:

- route:
    from:
      uri: "kamelet:timer-source"
      parameters:
        period: 10000
        message: 'test'
      steps:
        - to:
            uri: "kamelet:log-sink"
Copy to Clipboard Toggle word wrap

现在,您可以直接使用以下命令运行它。

camel run route.yaml
Copy to Clipboard Toggle word wrap

79.3.2. Knative Action

您可以使用 timestamp-router-action Kamelet 作为 Knative 绑定中的中间步骤。

timestamp-router-action-binding.yaml

apiVersion: camel.apache.org/v1
kind: Pipe
metadata:
  name: timestamp-router-action-binding
spec:
  source:
    ref:
      kind: Kamelet
      apiVersion: camel.apache.org/v1
      name: timer-source
    properties:
      message: "Hello"
  steps:
  - ref:
      kind: Kamelet
      apiVersion: camel.apache.org/v1
      name: timestamp-router-action
  sink:
    ref:
      kind: Channel
      apiVersion: messaging.knative.dev/v1
      name: mychannel
Copy to Clipboard Toggle word wrap

79.3.3. Kafka 操作

您可以使用 timestamp-router-action Kamelet 作为 Kafka 绑定中的中间步骤。

timestamp-router-action-binding.yaml

apiVersion: camel.apache.org/v1
kind: Pipe
metadata:
  name: timestamp-router-action-binding
spec:
  source:
    ref:
      kind: Kamelet
      apiVersion: camel.apache.org/v1
      name: timer-source
    properties:
      message: "Hello"
  steps:
  - ref:
      kind: Kamelet
      apiVersion: camel.apache.org/v1
      name: timestamp-router-action
  sink:
    ref:
      kind: KafkaTopic
      apiVersion: kafka.strimzi.io/v1beta1
      name: my-topic
Copy to Clipboard Toggle word wrap

79.4. kamelets 源文件

https://github.com/jboss-fuse/camel-kamelets/blob/camel-kamelets-4.10.3-branch/kamelets/timestamp-router-action.kamelet.yaml

第 80 章 Key Action 的值

将 Kafka 记录键替换为来自消息正文的字段子集的新键。

80.1. 配置选项

下表总结了可用于 value-to-key-action Kamelet 的配置选项:

Expand
属性名称描述类型默认示例

字段 *

字段

用于组成新密钥的字段的逗号分隔列表。

字符串

  

* = 标记为星号的字段 是必需的

80.2. 依赖项

80.2.1. Quarkus 依赖项

<dependencies>
  <dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifact>camel-quarkus-core</artifact>
  </dependency>
  <dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifact>camel-quarkus-jackson</artifact>
  </dependency>
  <dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifact>camel-quarkus-kafka</artifact>
  </dependency>
  <dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifact>camel-quarkus-kamelet</artifact>
  </dependency>
  <dependency>
    <groupId>org.apache.camel.kamelets</groupId>
    <artifact>camel-kamelets-utils</artifact>
    <version>4.8.5</version>
  </dependency>
</dependencies>
Copy to Clipboard Toggle word wrap

80.3. 使用方法

80.3.1. Camel JBang 用法

80.3.1.1. JBang 的先决条件
  • 安装 JBang
  • 您已执行以下命令:

    jbang app install camel@apache/camel
    Copy to Clipboard Toggle word wrap
80.3.1.2. 使用 JBang 运行路由

假设有一个名为 route.yaml 的文件,其中包含此内容:

- route:
    from:
      uri: "kamelet:timer-source"
      parameters:
        period: 10000
        message: 'test'
      steps:
        - to:
            uri: "kamelet:log-sink"
Copy to Clipboard Toggle word wrap

现在,您可以直接使用以下命令运行它。

camel run route.yaml
Copy to Clipboard Toggle word wrap

80.3.2. Knative Action

您可以使用 value-to-key-action Kamelet 作为 Knative 绑定中的中间步骤。

value-to-key-action-binding.yaml

apiVersion: camel.apache.org/v1
kind: Pipe
metadata:
  name: value-to-key-action-binding
spec:
  source:
    ref:
      kind: Kamelet
      apiVersion: camel.apache.org/v1
      name: timer-source
    properties:
      message: "Hello"
  steps:
  - ref:
      kind: Kamelet
      apiVersion: camel.apache.org/v1
      name: value-to-key-action
    properties:
      fields: "The Fields"
  sink:
    ref:
      kind: Channel
      apiVersion: messaging.knative.dev/v1
      name: mychannel
Copy to Clipboard Toggle word wrap

80.3.3. Kafka 操作

您可以使用 value-to-key-action Kamelet 作为 Kafka 绑定中的中间步骤。

value-to-key-action-binding.yaml

apiVersion: camel.apache.org/v1
kind: Pipe
metadata:
  name: value-to-key-action-binding
spec:
  source:
    ref:
      kind: Kamelet
      apiVersion: camel.apache.org/v1
      name: timer-source
    properties:
      message: "Hello"
  steps:
  - ref:
      kind: Kamelet
      apiVersion: camel.apache.org/v1
      name: value-to-key-action
    properties:
      fields: "The Fields"
  sink:
    ref:
      kind: KafkaTopic
      apiVersion: kafka.strimzi.io/v1beta1
      name: my-topic
Copy to Clipboard Toggle word wrap

80.4. kamelets 源文件

https://github.com/jboss-fuse/camel-kamelets/blob/camel-kamelets-4.10.3-branch/kamelets/value-to-key-action.kamelet.yaml

法律通告

Copyright © 2025 Red Hat, Inc.
The text of and illustrations in this document are licensed by Red Hat under a Creative Commons Attribution–Share Alike 3.0 Unported license ("CC-BY-SA"). An explanation of CC-BY-SA is available at http://creativecommons.org/licenses/by-sa/3.0/. In accordance with CC-BY-SA, if you distribute this document or an adaptation of it, you must provide the URL for the original version.
Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d of CC-BY-SA to the fullest extent permitted by applicable law.
Red Hat, Red Hat Enterprise Linux, the Shadowman logo, the Red Hat logo, JBoss, OpenShift, Fedora, the Infinity logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other countries.
Linux® is the registered trademark of Linus Torvalds in the United States and other countries.
Java® is a registered trademark of Oracle and/or its affiliates.
XFS® is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United States and/or other countries.
MySQL® is a registered trademark of MySQL AB in the United States, the European Union and other countries.
Node.js® is an official trademark of Joyent. Red Hat is not formally related to or endorsed by the official Joyent Node.js open source or commercial project.
The OpenStack® Word Mark and OpenStack logo are either registered trademarks/service marks or trademarks/service marks of the OpenStack Foundation, in the United States and other countries and are used with the OpenStack Foundation's permission. We are not affiliated with, endorsed or sponsored by the OpenStack Foundation, or the OpenStack community.
All other trademarks are the property of their respective owners.
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2026 Red Hat
返回顶部