プラグインのディレクトリ配置と起動パラメータの関係を教えてください。
プラグインは、全てScenarioサーバに配置します。Scenarioサーバは起動時(起動パラメータ--plugins_auto_install
が有効な場合のみ)、あるいはプラグインアップグレードのAPI呼び出しをトリガーに起動オプションに従ってインストール対象のプラグインをAPIGWを介して各サーバにインストールします。プラグインのディレクトリ構成の考え方としてプラグイン基底ディレクトリ
、プラグインディレクトリ
、プラグインサービスディレクトリ
、プラグイン定義ファイル
の4つの概念があります。
-
プラグイン基底ディレクトリ
: プラグインディレクトリを格納するディレクトリです。Qmonus SDKから読み書き可能なディレクトリパスであればどこでも可です。プラグイン基底ディレクトリは、起動オプションの--plugins_base_dirs
で指定してください。カンマ区切りで複数のディレクトリパスを指定することもできます。 -
プラグインディレクトリ
: プラグインサービスディレクトリを格納するディレクトリです。ディレクトリ名は自由に指定できます。--developer_mode
が有効化されている場合でワークスペースローカルディスクモードで動作している場合、プラグインディレクトリはワークスペース名として認識されます。プラグインディレクトリは、起動オプションの--plugins
で指定してください。カンマ区切りで複数指定することもできます。また、--plugins=*
のようにワイルドカード指定でプラグイン基底ディレクトリ配下のプラグインディレクトリを全てロード対象にする指定が可能です。
Tip
ワイルドカード*
を指定した場合は、全て読み込み対象となりますが、一部のプラグインディレクトリを無視したい場合は、--ignore_plugins
で無視するディレクトリを指定することもできます。
同階層に、build
、exam
、frontal
などプラグイン以外のアセットが格納されている場合、--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