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) を指定できます。このファイルは、ÙTF-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}} プロパティープレースホルダーが含まれています。

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

    kamel run --property <property>=<value> <integration>

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

    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 file my-integration.properties のようにプロパティーファイルを使用してコマンドラインでプロパティー値を指定できます。

手順

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

    my.key.1=hello
    my.key.2=world
  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}}");
    
      }
    }
  3. 以下の構文を使用してインテグレーションを実行し、プロパティーファイルを参照します。

    kamel run --property file:<my-file.properties> <integration>

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

    kamel run --p file:<my-file.properties> <integration>

    以下に例を示します。

    kamel run Routing.java --property:file=my.properties --dev

    以下は、結果の例になります。

    ...
    [1] 2020-04-13 15:20:30.424 INFO  [main] ApplicationRuntime - Listener org.apache.camel.k.listener.RoutesDumper@6e0dec4a executed in phase Started
    [1] 2020-04-13 15:20:31.461 INFO  [Camel (camel-k) thread #1 - timer://java] priority - !!Priority item: engine
    [1] 2020-04-13 15:20:37.426 INFO  [Camel (camel-k) thread #1 - timer://java] standard - Standard item: window
    [1] 2020-04-13 15:20:43.429 INFO  [Camel (camel-k) thread #1 - timer://java] priority - !!Priority item: door
    ...
Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

© 2024 Red Hat, Inc.