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

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

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

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

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

前提条件

手順

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

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

    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/) にコピーします。以下は例になります。

    kamel run --resource file:resources-data.zip ResourceFileBinaryRoute.java -d camel-zipfile --dev

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

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

    kamel run --resource file:resources-data1.txt --resource file:resources-data2.txt ResourceFileBinaryRoute.java -d camel-zipfile --dev