4.2. 指定运行时配置选项


您可以在 Camel K 运行时指定以下运行时配置信息:

  • 您在命令行或 .properties 文件中提供的运行时属性。
  • 在集成启动时,您希望 Camel K 操作器处理并解析为运行时属性的配置值。您可以在本地文本文件、OpenShift ConfigMap 或 OpenShift secret 中提供配置值。
  • 集成启动时不会解析为属性文件的资源信息。您可以在本地文本文件、二进制文件、OpenShift ConfigMap 或 OpenShift secret 中提供资源信息。

使用以下 kamel run 选项:

  • --property

    使用 --property 选项直接在命令行中指定运行时属性,或者引用 Java *.properties 文件。Camel K 运算符将属性文件的内容附加到正在运行的集成 的用户.properties 文件中。

  • --config

    在集成启动时,使用 --config 选项提供您希望 Camel K 运算符处理并解析为运行时属性的配置值。

    您可以提供一个本地文本文件(1 MiB 最大文件大小)、ConfigMap (3MB)或 Secret (3MB)。该文件必须是 UTF-8 资源。材料化文件(在从您提供的文件中生成的)在类路径级别上提供,以便您可以在集成代码中引用它,而无需提供确切的位置。

    注: 如果您需要提供非 UTF-8 资源(例如,一个二进制文件),请使用 --resource 选项。

  • --resource

    使用 --resource 选项为集成提供资源,以便在资源运行时访问。您可以提供本地文本或二进制文件(1 MiB 最大文件大小)、ConfigMap (最大 3MB)或 Secret (最大 3MB)。另外,您还可以指定资源材料的文件的目的地。例如,如果要设置 HTTPS 连接,请使用 --resource 选项提供在指定位置预期 SSL 证书(二进制文件)。

    Camel K 运算符不会解析属性的资源,且不会将资源添加到 classpath 中。(如果要将资源添加到类路径,您可以使用集成中的 JVM 特征

4.2.1. 提供运行时属性

您可以直接在命令行中指定运行时属性,或者使用 kamel run 命令的 --property 选项引用 Java *.properties 文件。

当您运行与 --property 选项的集成时,Camel K operator 会将属性附加到正在运行的集成 的用户.properties 文件中。

4.2.1.1. 在命令行中提供运行时属性

您可以在运行时在命令行中配置 Camel K 集成的属性。当您使用属性占位符(如 {{my.message}} )在集成中定义属性时,您可以在命令行中指定属性值,如 --property my.message=Hello。您可以在一个命令中指定多个属性。

流程

  1. 开发使用属性的 Camel 集成。以下简单示例包含 {{my.message}} 属性占位符:

    ...
    - from:
       uri: "timer:tick"
       steps:
         - set-body:
             constant: "{{my.message}}"
         - to: "log:info"
    ...
    Copy to Clipboard Toggle word wrap
  2. 使用下列语法运行集成,在运行时设置属性值:

    kamel run --property <property>=<value> <integration>
    Copy to Clipboard Toggle word wrap

    另外,您可以使用 --p 简写表示法(使用 --property代替 ):

    kamel run --property <property>=<value> <integration>
    Copy to Clipboard Toggle word wrap

    例如:

    kamel run --property my.message="Hola Mundo" HelloCamelK.java --dev
    Copy to Clipboard Toggle word wrap

    或者

    kamel run --p my.message="Hola Mundo" HelloCamelK.java --dev
    Copy to Clipboard Toggle word wrap

    以下是示例结果:

    ...
    [1] 2020-04-13 15:39:59.213 INFO  [main] ApplicationRuntime - Listener org.apache.camel.k.listener.RoutesDumper@6e0dec4a executed in phase Started
    [1] 2020-04-13 15:40:00.237 INFO  [Camel (camel-k) thread #1 - timer://java] info - Exchange[ExchangePattern: InOnly, BodyType: String, Body: Hola Mundo from java]
    ...
    Copy to Clipboard Toggle word wrap

4.2.1.2. 在属性文件中提供运行时属性

您可以在运行时在命令行中指定属性文件(*.properties)来为 Camel K 集成配置多个属性。当您使用属性占位符(如 {{my.items}} )在集成中定义属性时,您可以使用属性文件(如 --p 文件 my-integration.properties )来指定命令行上的属性值。

流程

  1. 创建集成属性文件。以下示例来自名为 my.properties 的文件:

    my.key.1=hello
    my.key.2=world
    Copy to Clipboard Toggle word wrap
  2. 开发使用属性文件的 Camel 集成。以下示例 Routing.java 集成使用 {{my.key.1}}{{my.key.2=world}} 属性占位符:

    import org.apache.camel.builder.RouteBuilder;
    
    public class Routing extends RouteBuilder {
      @Override
      public void configure() throws Exception {
    
        from("timer:property-file")
           .routeId("property-file")
           .log("property file content is: {{my.key.1}} {{my.key.2}}");
    
      }
    }
    Copy to Clipboard Toggle word wrap
  3. 通过以下语法运行集成来引用属性文件:

    kamel run --property file:<my-file.properties> <integration>
    Copy to Clipboard Toggle word wrap

    另外,您可以使用 --p 简写表示法(使用 --property代替 ):

    kamel run --p file:<my-file.properties> <integration>
    Copy to Clipboard Toggle word wrap

    例如:

    kamel run Routing.java --property:file=my.properties --dev
    Copy to Clipboard Toggle word wrap
返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2025 Red Hat