プラグインのディレクトリ配置と起動パラメータの関係を教えてください。
プラグインは起動パラメータ--plugins_base_dirs
で指定された「プラグイン基底ディレクトリ」と呼ばれるディレクトリを基準に特定の構成で配置されたプラグインを読み込みます。
Note
インストールは以下のタイミングで行われます。
・Scenarioサーバの起動時(起動パラメータ--plugins_auto_install
が有効な場合)
・プラグインアップグレードのAPI呼び出しを行った時
インストール対象のプラグインは起動オプションに従いAPIGWを介して各サーバにインストールされます。
プラグイン基底ディレクトリ
プラグインを読み込む際に基準となるディレクトリです。
起動オプションの--plugins_base_dirs
で指定し、指定したディレクトリを基準にそれぞれのディレクトリ、ファイルをプラグインディレクトリ
、プラグインサービスディレクトリ
、プラグイン定義ファイル
として読み込みます。
Qmonus SDKから読み書き可能なディレクトリパスであればどこでも可です。カンマ区切りで複数のディレクトリパスを指定することもできます。
プラグインディレクトリ
プラグイン基底ディレクトリの直下に配置するディレクトリです。ユーザが自由に名前を決定することができ、ワークスペースとして扱うこともできます。
例として用途の違う a_plugin, b_plugin と2つのプラグインを管理する場合、このプラグインディレクトリ単位で分割することが可能です。
Note
ワークスペースとして扱われる条件
以下の2つの条件を満たしている場合、プラグインディレクトリをワークスペースとして認識します。
・ github連携モードではない場合
・ --developer_mode
がTrueの場合
Tip
プラグインディレクトリは、起動オプションの--plugins
で指定することもできます。カンマ区切りでの複数指定や、--plugins=*
のようにワイルドカード指定でプラグイン基底ディレクトリ配下のプラグインディレクトリを全てロード対象にする指定が可能です。
ワイルドカード*
を指定した場合は、全て読み込み対象となりますが、一部のプラグインディレクトリを無視したい場合は、--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 jsonschemas configs variablegroups modules functions toyblocks templates scenarios modelschemas closedloopcomponents closedlooptypes daemons classes dags 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
のファイルをプラグインとして認識します。
例えば、HelloWold.ymlというScenarioリソースを作成する場合、以下のようなプラグイン配置となります。
プラグイン基底ディレクトリ/プラグインディレクトリ/scenarios/HelloWold.yml
ディレクトリ配置と起動パラメータの関係
例として以下のようなディレクトリ配置の場合を想定します。
-
例① :
起動パラメータ:--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