プラグインのディレクトリ配置と起動パラメータの関係を教えてください。



プラグインは、全てScenarioサーバに配置します。Scenarioサーバは起動時(起動パラメータ--plugins_auto_installが有効な場合のみ)、あるいはプラグインアップグレードのAPI呼び出しをトリガーに起動オプションに従ってインストール対象のプラグインをAPIGWを介して各サーバにインストールします。プラグインのディレクトリ構成の考え方としてプラグイン基底ディレクトリプラグインディレクトリプラグインサービスディレクトリプラグイン定義ファイルの4つの概念があります。

  • プラグイン基底ディレクトリ: プラグインディレクトリを格納するディレクトリです。Qmonus SDKから読み書き可能なディレクトリパスであればどこでも可です。プラグイン基底ディレクトリは、起動オプションの--plugins_base_dirsで指定してください。カンマ区切りで複数のディレクトリパスを指定することもできます。

  • プラグインディレクトリ: プラグインサービスディレクトリを格納するディレクトリです。ディレクトリ名は自由に指定できます。--developer_modeが有効化されている場合でワークスペースローカルディスクモードで動作している場合、プラグインディレクトリはワークスペース名として認識されます。プラグインディレクトリは、起動オプションの--pluginsで指定してください。カンマ区切りで複数指定することもできます。また、--plugins=*のようにワイルドカード指定でプラグイン基底ディレクトリ配下のプラグインディレクトリを全てロード対象にする指定が可能です。

Tip

ワイルドカード*を指定した場合は、全て読み込み対象となりますが、一部のプラグインディレクトリを無視したい場合は、--ignore_pluginsで無視するディレクトリを指定することもできます。
同階層に、buildexamfrontalなどプラグイン以外のアセットが格納されている場合、--ignore_plugins=build,exam,frontalとすることで除外できます。

  • プラグインサービスディレクトリ: プラグイン定義ファイルを格納するディレクトリです。ディレクトリ名はQmonus SDKの各種メタマイクロサービスの名称で予約されており、以下のディレクトリ名のみを該当するメタマイクロサービスのプラグインが格納されているディレクトリと認識します。
サーバ プラグインサービスディレクトリ
APIGW roles accounts parametermappers routings
Transaction counters aborthooks exclusives transactionquotas ipam
Scenario formats configs variablegroups modules functions toyblocks templates scenarios modelschemas daemons classes aliases protobufs grpcservicers followers jobs fakers illusions testcases testsuites
Schedule outgoingwebhooks
Lambda cliproxy netconfproxy devices deviceroles lambdafunctions
Collector collectionpatterns collectionhooks collections
Reflector reflections workers


  • プラグイン定義ファイル: プラグインの定義ファイルです。拡張子.yml.yaml.jsonのファイルをプラグインとして認識します。


例として以下のようなディレクトリ配置の場合を想定します。

  • 例① :
    起動パラメータ: --plugins_base_dirs=/usr/local/qmonus --plugins=a_plugins
    インストール対象プラグイン: h i j k

  • 例② :
    起動パラメータ: --plugins_base_dirs=/usr/local/qmonus --plugins=a_plugins,b_plugins
    インストール対象プラグイン: h i j k l

  • 例③ :
    起動パラメータ: --plugins_base_dirs=/usr/local/qmonus --plugins=*
    インストール対象プラグイン: h i j k l d
    ※ もしd配下にプラグインサービスディレクトリに該当する名称のディレクトリが存在し、その配下に.ymlが配置されているとインストール対象として認識されます。ファイルの中身がプラグインとして不正なためインストールには失敗する可能性があります。このような状況が想定される場合は、例④ のように--ignore_pluginsを指定してください。

  • 例④ :
    起動パラメータ: --plugins_base_dirs=/usr/local/qmonus --plugins=* --ignore_plugins=frontal_plugins
    インストール対象プラグイン: h i j k l