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。您可以在一个命令中指定多个属性。
前提条件
流程
开发使用属性的 Camel 集成。以下简单示例包含
{{my.message}}属性占位符:... - from: uri: "timer:tick" steps: - set-body: constant: "{{my.message}}" - to: "log:info" ...使用下列语法运行集成,在运行时设置属性值:
kamel run --property <property>=<value> <integration>另外,您可以使用
--p简写表示法(使用--property代替 ):kamel run --property <property>=<value> <integration>例如:
kamel run --property my.message="Hola Mundo" HelloCamelK.java --dev或者
kamel run --p my.message="Hola Mundo" HelloCamelK.java --dev以下是示例结果:
... [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] ...
另请参阅
4.2.1.2. 在属性文件中提供运行时属性 复制链接链接已复制到粘贴板!
您可以在运行时在命令行中指定属性文件(*.properties)来为 Camel K 集成配置多个属性。当您使用属性占位符(如 {{my.items}} )在集成中定义属性时,您可以使用属性文件(如 --p 文件 my-integration.properties )来指定命令行上的属性值。
前提条件
流程
创建集成属性文件。以下示例来自名为
my.properties的文件:my.key.1=hello my.key.2=world开发使用属性文件的 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}}"); } }通过以下语法运行集成来引用属性文件:
kamel run --property file:<my-file.properties> <integration>另外,您可以使用
--p简写表示法(使用--property代替 ):kamel run --p file:<my-file.properties> <integration>例如:
kamel run Routing.java --property:file=my.properties --dev