Serverless: プラグインが他のプラグインにアクセスできるようにするためのAPI

作成日 2016年11月24日  ·  3コメント  ·  ソース: serverless/serverless

サーバーレス用のOpenWhiskプロバイダーの実装に取り​​組んでいます。プラグイン内から他のプラグインインスタンスにアクセスしようとすると、問題が発生しました。

deployFunctionプラグインでは、既存のパッケージプラグインにアクセスして、単一の関数アーティファクトのパッケージ化を管理する必要があります。

AWSプロバイダーの実装では、クラスはローカルファイルパスを介してモジュールを直接参照できます。 https://github.com/serverless/serverless/blob/master/lib/plugins/aws/deployFunction/index.js#L9

OpenWhiskプラグインはサードパーティのプラグインであり、これを行うことはできません。

私は現在、プラグインマネージャーからインストールされたプラグインインスタンスを反復処理することでこれを回避していますが、これはインスタンスをモンキーテストして正しいインスタンスがあると想定することに依存しています。
https://github.com/serverless/serverless-ibm-openwhisk/blob/master/deployFunction/index.js#L15 -L16

インストールされているプラ​​グインを名前で見つけるのに役立つAPIメソッドを追加できますか?


実施提案

プラグインを一意の名前で識別します。一意の名前は、 plugin.nameプロパティまたは大文字でないコンストラクター名のいずれかから解決する必要があります。

同じ名前の2つのプラグインが検出された場合は、次のメジャーバージョンでそのようなセットアップがスローされる非推奨メッセージ

プラグインは、 serverless.pluginsコレクションで名前で参照し、他のプラグインからアクセスできるようにする必要があります。

名前解決とserlveress.plugins割り当ては、 pluginManager.addPluginロジックのスコープ内で行う必要があります//github.com/serverless/serverless/blob/5096534a80e211b947e59d7283cfdfdd1711e7ea/lib/classes/PluginManager.js#L93 -L122

caplugin deprecation enhancement good first issue help wanted

最も参考になるコメント

@jthomasこれを開いてくれてありがとう! 👍完璧なタイミング🕐

現在、プラグインアーキテクチャ/ UX全体を改善する方法について話し合っています。
現在の問題点についてこのようなフィードバックをいただければ幸いです(他にご不明な点がございましたら、さらに送信してください)。 💯

/ cc @ ac360 @nikgraf @eahefnawy @mthenw

全てのコメント3件

@jthomasこれを開いてくれてありがとう! 👍完璧なタイミング🕐

現在、プラグインアーキテクチャ/ UX全体を改善する方法について話し合っています。
現在の問題点についてこのようなフィードバックをいただければ幸いです(他にご不明な点がございましたら、さらに送信してください)。 💯

/ cc @ ac360 @nikgraf @eahefnawy @mthenw

確かに、非常に良いフィードバックです! 私たちはこれが将来可能になることを確認します。

主な説明を実装提案で更新しました。 それは非常に簡単に達成でき(私は思う)、付加価値は本物です

このページは役に立ちましたか?
0 / 5 - 0 評価