4.2. ランタイム設定オプションの指定


稼働時に使用する Camel K インテグレーションの以下のランタイム設定情報を指定できます。

  • コマンドラインまたは .properties ファイルで指定するランタイムプロパティー
  • インテグレーションの開始時に Camel K Operator が処理し、ランタイムプロパティーとして解析する設定値。設定値は、ローカルのテキストファイル、OpenShift ConfigMap、または OpenShift シークレットで指定できます。
  • インテグレーションの起動時にプロパティーファイルとして解析されないリソース情報。ローカルのテキストファイル、バイナリーファイル、OpenShift ConfigMap、または OpenShift シークレットでリソース情報を指定できます。

以下の kamel run オプションを使用します。

  • --property

    --property オプションを使用して、コマンドラインでランタイムプロパティーを直接指定するか、Java *.properties ファイルを参照します。Camel K Operator は、稼働中のインテグレーションの user.properties ファイルにプロパティーファイルの内容を追加します。

  • --config

    --config オプションを使用して、インテグレーションの開始時に Camel K Operator が処理し、ランタイムプロパティーとして解析する設定値を指定します。

    ローカルのテキストファイル (1 MiB の最大ファイルサイズ)、ConfigMap (3 MB) またはシークレット (3 MB) を指定できます。ファイルは UTF-8 リソースである必要があります。マテリアル化されたファイル (提供するファイルからインテグレーションを起動する時に生成される) は、クラスパスレベルで利用可能になります。これにより、正確な場所を指定しなくてもインテグレーションコードで参照できるようになります。

    注記: 非 UTF-8 リソース (バイナリーファイルなど) を提供する必要がある場合は、--resource オプションを使用します。

  • --resource

    --resource オプションを使用して、インテグレーションの稼働時にアクセスするリソースを提供します。ローカルのテキストファイルまたはバイナリーファイル (1 MiB の最大ファイルサイズ)、ConfigMap (最大 3 MB) またはシークレット (最大 3 MB) を指定できます。オプションで、リソース用にマテリアル化したファイルの宛先を指定できます。たとえば、HTTPS 接続を設定する場合は、--resource オプションを使用して、指定した場所にあると予想される SSL 証明書 (バイナリーファイル) を指定します。

    Camel K Operator はプロパティーのリソースを解析したり、リソースをクラスパスに追加したりしません。(クラスパスにリソースを追加する場合は、インテグレーションで JVM トレイト を使用できます。)

4.2.1. ランタイムプロパティーの指定

kamel run コマンドで --property オプションを使用して、コマンドラインで直接または Java *.properties ファイルを参照してランタイムプロパティーを指定できます。

--property オプションを使用してインテグレーションを実行する場合、Camel K Operator は稼働中のインテグレーションの user.properties ファイルにプロパティーを追加します。

4.2.1.1. コマンドラインでのランタイムプロパティーの指定

実行時にコマンドラインで Camel K インテグレーションのプロパティーを設定できます。プロパティーのプレースホルダーを使用してインテグレーションのプロパティーを定義する場合 (例: {{my.message}})、--property my.message=Hello のようにコマンドラインでプロパティー値を指定できます。1 つのコマンドで複数のプロパティーを指定できます。

手順

  1. プロパティーを使用する Camel インテグレーションを開発します。以下の簡単な例には、{{my.message}} プロパティープレースホルダーが含まれています。

    Copy to Clipboard Toggle word wrap
    ...
    - from:
       uri: "timer:tick"
       steps:
         - set-body:
             constant: "{{my.message}}"
         - to: "log:info"
    ...
  2. 以下の構文を使用してインテグレーションを実行し、実行時にプロパティー値を設定します。

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

    または、(--property の代わりに) --p 短縮表記を使用することもできます。

    Copy to Clipboard Toggle word wrap
    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]
    ...

4.2.1.2. プロパティーファイルでのランタイムプロパティーの指定

実行時にコマンドラインでプロパティーファイル *.properties を指定すると、Camel K インテグレーションに複数のプロパティーを設定できます。たとえば、--p file my-integration.properties プロパティープレースホルダーを使用してインテグレーションでプロパティーを定義する場合、{{my.items}} のようにプロパティーファイルを使用してコマンドラインでプロパティー値を指定できます。

手順

  1. インテグレーションのプロパティーファイルを作成します。以下の例は、my.properties という名前のファイルからのものです。

    Copy to Clipboard Toggle word wrap
    my.key.1=hello
    my.key.2=world
  2. プロパティーファイルに定義されたプロパティーを使用する Camel インテグレーションを開発します。以下の Routing.java 統合例では {{my.key.1}} および {{my.key.2=world}} プロパティープレースホルダーを使用します。

    Copy to Clipboard Toggle word wrap
    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}}");
    
      }
    }
  3. 以下の構文を使用してインテグレーションを実行し、プロパティーファイルを参照します。

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

    または、(--property の代わりに) --p 短縮表記を使用することもできます。

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

    以下に例を示します。

    Copy to Clipboard Toggle word wrap
    kamel run Routing.java --property:file=my.properties --dev

4.2.2. 設定値の指定

kamel run コマンドの --config オプションを使用して、Camel K Operator がランタイムプロパティーとして処理し、解析する設定値を指定できます。設定値は、ローカルのテキスト (UTF-8) ファイル、OpenShift ConfigMap、または OpenShift シークレットで指定できます。

インテグレーションの実行時に、Camel K Operator は提供されたファイルをマレリアル化し、これをクラスパスに追加します。これにより、正確な場所を指定しなくてもインテグレーションコードの設定値を参照できます。

4.2.2.1. テキストファイルの指定

設定値が含まれる UTF-8 テキストファイルがある場合は、--config file:/path/to/file オプションを使用して、実行中のインテグレーションのクラスパスでファイルを (同じファイル名で) 利用可能にすることができます。

前提条件

  • Camel K 開発環境の設定
  • 設定値が含まれる 1 つ以上の (バイナリー以外の) テキストファイルがある。

    たとえば、以下のテキスト行を含む resources-data.txt という名前のファイルを作成します。

    Copy to Clipboard Toggle word wrap
    the file body

手順

  1. 設定値が含まれるテキストファイルを参照する Camel K インテグレーションを作成します。

    たとえば、以下のインテグレーション (ConfigFileRoute.java) は、実行時にクラスパスで resources-data.txt ファイルが利用可能でなければなりません。

    Copy to Clipboard Toggle word wrap
    import org.apache.camel.builder.RouteBuilder;
    
    public class ConfigFileRoute extends RouteBuilder {
      @Override
      public void configure() throws Exception {
    
        from("timer:config-file")
            .setBody()
                .simple("resource:classpath:resources-data.txt")
            .log("resource file content is: ${body}");
    
      }
    }
  2. インテグレーションを実行し、実行中のインテグレーションで使用できるように、--config オプションを使用してテキストファイルを指定します。以下に例を示します。

    Copy to Clipboard Toggle word wrap
    kamel run --config file:resources-data.txt ConfigFileRoute.java --dev

    必要に応じて、--config オプションを繰り返し追加して、複数のファイルを指定できます。以下に例を示します。

    Copy to Clipboard Toggle word wrap
    kamel run --config file:resources-data1.txt --config file:resources-data2.txt ConfigFileRoute.java --dev

4.2.2.2. ConfigMap の指定

設定値が含まれる OpenShift ConfigMap があり、Camel K インテグレーションで使用できるように ConfigMap をマテリアル化する必要がある場合には、--config configmap:<configmap-name> 構文を使用します。

前提条件

  • Camel K 開発環境の設定
  • OpenShift クラスター上に 1 つ以上の ConfigMap ファイルがある。

    たとえば、以下のコマンドを使用して ConfigMap を作成できます。

    Copy to Clipboard Toggle word wrap
    oc create configmap my-cm --from-literal=my-configmap-key="configmap content"

手順

  1. ConfigMap を参照する Camel K インテグレーションを作成します。

    たとえば、以下のインテグレーション (名前: ConfigConfigmapRoute.java) は、my-cm という名前の ConfigMap の my-configmap-key という名前の設定値を参照します。

    Copy to Clipboard Toggle word wrap
    import org.apache.camel.builder.RouteBuilder;
    
    public class ConfigConfigmapRoute extends RouteBuilder {
      @Override
      public void configure() throws Exception {
    
        from("timer:configmap")
            .setBody()
                 .simple("resource:classpath:my-configmap-key")
            .log("configmap content is: ${body}");
    
      }
    }
  2. インテグレーションを実行し、--config オプションを使用して ConfigMap ファイルをマテリアル化し、実行中のインテグレーションで使用できるようにします。以下に例を示します。

    Copy to Clipboard Toggle word wrap
    kamel run --config configmap:my-cm ConfigConfigmapRoute.java --dev

    インテグレーションが起動すると、Camel K Operator は ConfigMap の内容で OpenShift ボリュームをマウントします。

注記: クラスターでまだ利用できない ConfigMap を指定した場合、Integration は待機し ConfigMap が利用可能になって初めて起動します。

4.2.2.3. シークレットの指定

OpenShift シークレットを使用して、設定情報を安全に含めることができます。--config secret 構文を使用して、Camel K インテグレーションが利用できるようシークレットをマテリアル化することができます。

前提条件

  • Camel K 開発環境の設定
  • OpenShift クラスター上に 1 つ以上のシークレットがある。

    たとえば、以下のコマンドを使用してシークレットを作成できます。

    Copy to Clipboard Toggle word wrap
    oc create secret generic my-sec --from-literal=my-secret-key="very top secret"

手順

  1. ConfigMap を参照する Camel K インテグレーションを作成します。

    たとえば、以下のインテグレーション (名前: ConfigSecretRoute.java) は、my-sec という名前のシークレットの my-secret プロパティーを参照します。

    Copy to Clipboard Toggle word wrap
    import org.apache.camel.builder.RouteBuilder;
    
    public class ConfigSecretRoute extends RouteBuilder {
      @Override
      public void configure() throws Exception {
    
        from("timer:secret")
            .setBody()
                .simple("resource:classpath:my-secret")
            .log("secret content is: ${body}");
    
      }
    }
  2. インテグレーションを実行し、--config オプションを使用してシークレットをマテリアル化し、実行中のインテグレーションで使用できるようにします。以下に例を示します。

    Copy to Clipboard Toggle word wrap
    kamel run --config secret:my-sec ConfigSecretRoute.java --dev

    インテグレーションが起動すると、Camel K Operator はシークレットの内容で OpenShift ボリュームをマウントします。

4.2.2.4. ConfigMap またはシークレットに含まれるプロパティーの参照

インテグレーションを実行し、--config オプションで ConfigMap またはシークレットを指定する場合、Camel K Operator は ConfigMap またはシークレットをランタイムプロパティーファイルとして解析します。インテグレーション内で、他のランタイムプロパティーを参照する際にプロパティーを参照できます。

手順

  1. プロパティーが含まれるテキストファイルを作成します。

    たとえば、以下のプロパティーを含む my.properties という名前のファイルを作成します。

    Copy to Clipboard Toggle word wrap
    my.key.1=hello
    my.key.2=world
  2. プロパティーファイルに基づいて ConfigMap またはシークレットを作成します。

    たとえば、以下のコマンドを使用して my.properties ファイルからシークレットを作成します。

    Copy to Clipboard Toggle word wrap
    oc create secret generic my-sec --from-file my.properties
  3. インテグレーションで、シークレットに定義されたプロパティーを参照します。

    たとえば、以下のインテグレーション (名前: ConfigSecretRoute.java) は、my.key.1my.key.2 プロパティーを参照します。

    Copy to Clipboard Toggle word wrap
    import org.apache.camel.builder.RouteBuilder;
    
    public class ConfigSecretPropertyRoute extends RouteBuilder {
      @Override
      public void configure() throws Exception {
    
        from("timer:secret")
            .routeId("secret")
            .log("{{my.key.1}} {{my.key.2}}");
    
      }
    }
  4. インテグレーションを実行し、--config オプションを使用して、my.key.1 および my.key.2 プロパティーが含まれるシークレットを指定します。

    以下に例を示します。

    Copy to Clipboard Toggle word wrap
    kamel run --config secret:my-sec ConfigSecretPropertyRoute.java --dev

4.2.2.5. ConfigMap またはシークレットから取得した設定値の絞り込み

ConfigMap およびシークレットは複数のソースを保持できます。たとえば、以下のコマンドは 2 つのソースからシークレット (my-sec-multi) を作成します。

Copy to Clipboard Toggle word wrap
oc create secret generic my-sec-multi --from-literal=my-secret-key="very top secret" --from-literal=my-secret-key-2="even more secret"

--config configmap または --config secret オプションの後に /key 表記を使用して、インテグレーションが取得する情報量を 1 つのソースに制限することができます。

前提条件

手順

  1. ConfigMap またはシークレットのいずれかのソースだけからの設定値を使用するインテグレーションを作成します。

    たとえば、以下のインテグレーション (ConfigSecretKeyRoute.java) は、my-sec-multi シークレット内のいずれかのソースだけからのプロパティーを使用します。

    Copy to Clipboard Toggle word wrap
    import org.apache.camel.builder.RouteBuilder;
    
    public class ConfigSecretKeyRoute extends RouteBuilder {
      @Override
      public void configure() throws Exception {
    
        from("timer:secret")
          .setBody()
              .simple("resource:classpath:my-secret-key-2")
          .log("secret content is: ${body}");
      }
    }
  2. --config secret オプションと /key 表記を使用して、インテグレーションを実行します。

    以下に例を示します。

    Copy to Clipboard Toggle word wrap
    kamel run --config secret:my-sec-multi/my-secret-key-2 ConfigSecretKeyRoute.java --dev
  3. インテグレーション Pod を確認し、指定されたソース (例: my-secret-key-2) のみがマウントされていることを確認します。

    たとえば、以下のコマンドを実行して Pod のすべてのボリュームを一覧表示します。

    Copy to Clipboard Toggle word wrap
    oc set volume pod/<pod-name> --all

4.2.3. 実行中のインテグレーションへのリソースの提供

kamel run コマンドの --resource オプションを使用すると、実行しているときに使用するインテグレーションのリソースを指定できます。ローカルのテキストファイル (1 MiB の最大ファイルサイズ)、ConfigMap (3 MB) またはシークレット (3 MB) を指定できます。オプションで、リソース用にマテリアル化したファイルの宛先を指定できます。たとえば、HTTPS 接続を設定する場合は、--resource オプションを使用します。これは、既知の場所にあると予想されるバイナリーファイルである SSL 証明書を提供する必要があるためです。

--resource オプションを使用する場合、Camel K Operator はランタイムプロパティーを検索するリソースを解析せず、リソースをクラスパスに追加しません。(クラスパスにリソースを追加する場合は、JVM トレイト を使用できます。)

4.2.3.1. リソースとしてのテキストまたはバイナリーファイルの指定

設定値が含まれるテキストファイルまたはバイナリーファイルがある場合は、--resource file:/path/to/file オプションを使用してファイルをマテリアル化できます。デフォルトでは、Camel K Operator はマテリアル化されたファイルを /etc/camel/resources/ ディレクトリーにコピーします。オプションで、リソースの宛先パスの指定 で説明されているように、別の宛先ディレクトリーを指定できます。

前提条件

  • Camel K 開発環境の設定
  • 設定プロパティーが含まれる 1 つ以上のテキストまたはバイナリーファイルがある。

手順

  1. 指定するファイルの内容を読み取る Camel K インテグレーションを作成します。

    たとえば、以下の統合 (ResourceFileBinaryRoute.java) を展開して resources-data.zip ファイルを読み込みます。

    Copy to Clipboard Toggle word wrap
    import org.apache.camel.builder.RouteBuilder;
    
    public class ResourceFileBinaryRoute extends RouteBuilder {
      @Override
      public void configure() throws Exception {
    
        from("file:/etc/camel/resources/?fileName=resources-data.zip&noop=true&idempotent=false")
            .unmarshal().zipFile()
            .log("resource file unzipped content is: ${body}");
    
      }
    }
  2. インテグレーションを実行し、--resource オプションを使用してファイルをデフォルトの宛先ディレクトリー (/etc/camel/resources/) にコピーします。以下に例を示します。

    Copy to Clipboard Toggle word wrap
    kamel run --resource file:resources-data.zip ResourceFileBinaryRoute.java -d camel-zipfile --dev

    注記: バイナリーファイルを指定すると、ファイルの内容のバイナリー表現が作成され、インテグレーションで透過的にデコードされます。

    必要に応じて、--resource オプションを繰り返し追加して、複数のリソースを指定できます。以下に例を示します。

    Copy to Clipboard Toggle word wrap
    kamel run --resource file:resources-data1.txt --resource file:resources-data2.txt ResourceFileBinaryRoute.java -d camel-zipfile --dev

4.2.3.2. リソースとしての ConfigMap の指定

設定値が含まれる OpenShift ConfigMap があり、ConfigMap をインテグレーションのリソースとしてマテリアル化する必要がある場合は、--resource <configmap-file> オプションを使用します。

前提条件

  • Camel K 開発環境の設定
  • OpenShift クラスター上に 1 つ以上の ConfigMap ファイルがある。たとえば、以下のコマンドを使用して ConfigMap を作成できます。

    Copy to Clipboard Toggle word wrap
    oc create configmap my-cm --from-literal=my-configmap-key="configmap content"

手順

  1. OpenShift クラスターに保存されている ConfigMap を参照する Camel K インテグレーションを作成します。

    たとえば、以下のインテグレーション (Resource ConfigmapRoute.java) は my- configmap-key が含まれる my-cm という名前の ConfigMap を参照します。

    Copy to Clipboard Toggle word wrap
    import org.apache.camel.builder.RouteBuilder;
    
    public class ResourceConfigmapRoute extends RouteBuilder {
      @Override
      public void configure() throws Exception {
    
        from("file:/etc/camel/resources/my-cm/?fileName=my-configmap-key&noop=true&idempotent=false")
            .log("resource file content is: ${body}");
    
      }
    }
  2. インテグレーションを実行し、--resource オプションを使用してデフォルトの /etc/camel/resources/ ディレクトリーの ConfigMap ファイルをマテリアル化し、実行中のインテグレーションで使用できるようにします。

    以下に例を示します。

    Copy to Clipboard Toggle word wrap
    kamel run --resource configmap:my-cm ResourceConfigmapRoute.java --dev

    インテグレーションが起動すると、Camel K Operator は ConfigMap の内容でボリュームをマウントします (例: my-configmap-key)。

注記: クラスターでまだ利用できない ConfigMap を指定した場合、Integration は待機し ConfigMap が利用可能になって初めて起動します。

4.2.3.3. リソースとしてのシークレットの指定

設定情報が含まれる OpenShift シークレットがあり、1 つ以上のインテグレーションが利用できるリソースとしてマテリアル化する必要がある場合は、--resource <secret> 構文を使用します。

前提条件

  • Camel K 開発環境の設定
  • OpenShift クラスター上に 1 つ以上のシークレットファイルがある。たとえば、以下のコマンドを使用してシークレットを作成できます。

    Copy to Clipboard Toggle word wrap
    oc create secret generic my-sec --from-literal=my-secret-key="very top secret"

手順

  1. OpenShift クラスターに保存されているシークレットを参照する Camel K インテグレーションを作成します。

    たとえば、以下のインテグレーション (名前: ResourceSecretRoute.java) は my-sec シークレットを参照します。

    Copy to Clipboard Toggle word wrap
    import org.apache.camel.builder.RouteBuilder;
    
    public class ResourceSecretRoute extends RouteBuilder {
      @Override
      public void configure() throws Exception {
    
          from("file:/etc/camel/resources/my-sec/?fileName=my-secret-key&noop=true&idempotent=false")
              .log("resource file content is: ${body}");
    
      }
    }
  2. インテグレーションを実行し、--resource オプションを使用してデフォルトの /etc/camel/resources/ ディレクトリーの Secret ファイルをマテリアル化し、実行中のインテグレーションで使用できるようにします。

    以下に例を示します。

    Copy to Clipboard Toggle word wrap
    kamel run --resource secret:my-sec ResourceSecretRoute.java --dev

    インテグレーションが起動すると、Camel K Operator はシークレットの内容でボリュームをマウントします (例: my-sec)。

注記: クラスターでまだ利用できないシークレットを指定した場合、Integration は待機しシークレットが利用可能になって初めて起動します。

4.2.3.4. リソースの宛先パスの指定

/etc/camel/resources/ ディレクトリーは、--resource オプションで指定するリソースをマウントするためのデフォルトの場所です。リソースをマウントする別のディレクトリーを指定する必要がある場合は、--resourece @path 構文を使用します。

前提条件

  • Camel K 開発環境の設定
  • 1 つ以上の設定プロパティーが含まれるファイル、ConfigMap、またはシークレットがある。

手順

  1. 設定プロパティーが含まれるファイル、ConfigMap、またはシークレットを参照する Camel K インテグレーションを作成します。たとえば、以下のインテグレーション (名前: ResourceFileLocationRoute.java) は myprops ファイルを参照します。

    Copy to Clipboard Toggle word wrap
    import org.apache.camel.builder.RouteBuilder;
    
    public class ResourceFileLocationRoute extends RouteBuilder {
      @Override
      public void configure() throws Exception {
    
          from("file:/tmp/?fileName=input.txt&noop=true&idempotent=false")
             .log("resource file content is: ${body}");
    
      }
    }
  2. インテグレーションを実行し、@path 構文で --resource オプションを使用して、リソースの内容 (ファイル、ConfigMap、または Secret のいずれか) をマウントする場所を指定します。

    たとえば、以下のコマンドは、/tmp ディレクトリーを使用して input.txt ファイルをマウントするように指定します。

    Copy to Clipboard Toggle word wrap
    kamel run --resource file:resources-data.txt@/tmp/input.txt ResourceFileLocationRoute.java --dev
  3. インテグレーションの Pod で、ファイル (例: input.txt) が正しい場所 (例: tmp ディレクトリー内) にマウントされていることを確認します。たとえば、以下のコマンドを実行します。

    Copy to Clipboard Toggle word wrap
    oc exec <pod-name> -- cat /tmp/input.txt

4.2.3.5. ConfigMap またはシークレットデータの絞り込み

ConfigMap またはシークレットの作成時に、複数の情報ソースを指定できます。たとえば、以下のコマンドは、2 つのソースから ConfigMap (my-cm-multi という名前) を作成します。

Copy to Clipboard Toggle word wrap
oc create configmap my-cm-multi --from-literal=my-configmap-key="configmap content" --from-literal=my-configmap-key-2="another content"

--resource オプションでインテグレーションを実行すると、ConfigMap またはシークレットは複数のソースで作成され、デフォルトでは両方のソースがマテリアル化されます。

ConfigMap またはシークレットからリカバリーする情報量を制限する場合は、ConfigMap またはシークレット名の後に --resource オプションの /key 表記を指定できます。例: --resource configmap:my-cm/my-key または --resource secret:my-secret/my-key

--resource configmap または --resource secret オプションの後に /key 表記を使用して、インテグレーションが取得する情報量を 1 つのソースに制限することができます。

前提条件

手順

  1. ConfigMap またはシークレットのいずれかのリソースだけからの設定値を使用するインテグレーションを作成します。たとえば、以下のインテグレーション ( ResourceConfigmapKeyLocationRoute.java という名称) は my-cm-multi ConfigMap を参照します。

    Copy to Clipboard Toggle word wrap
    import org.apache.camel.builder.RouteBuilder;
    
    public class ResourceConfigmapKeyLocationRoute extends RouteBuilder {
      @Override
      public void configure() throws Exception {
    
        from("file:/tmp/app/data/?fileName=my-configmap-key-2&noop=true&idempotent=false")
           .log("resource file content is: ${body} consumed from
            ${header.CamelFileName}");
    
      }
    }
  2. インテグレーションを実行し、@path 構文で --resource オプションを使用して、ソースの内容 (ファイル、ConfigMap、または Secret のいずれか) をマウントする場所を指定します。

    たとえば、以下のコマンドは ConfigMap 内に含まれるソースのいずれか (my-configmap-key-2@) のみを使用し、/tmp/app/data ディレクトリーを使用してマウントすることを指定します。

    Copy to Clipboard Toggle word wrap
    kamel run --resource configmap:my-cm-multi/my-configmap-key-2@/tmp/app/data ResourceConfigmapKeyLocationRoute.java --dev
  3. インテグレーションの Pod で、1 つのファイル (例: my-configmap-key-2) だけが正しい場所 (例: /tmp/app/data) にマウントされていることを確認します。たとえば、以下のコマンドを実行します。

    Copy to Clipboard Toggle word wrap
    oc exec <pod-name> -- cat /tmp/app/data/my-configmap-key-2
トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

Theme

© 2025 Red Hat, Inc.