En travaillant sur l'implémentation du fournisseur OpenWhisk pour Serverless, j'ai rencontré un défi en essayant d'accéder à d'autres instances de plugins à partir de mes plugins.
Dans le plugin deployFunction , nous devons accéder au plugin de package existant pour gérer l'empaquetage d'un artefact de fonction unique.
Dans l'implémentation du fournisseur AWS, la classe peut référencer directement le module via un chemin de fichier local. https://github.com/serverless/serverless/blob/master/lib/plugins/aws/deployFunction/index.js#L9
Le plugin OpenWhisk est un plugin tiers et ne peut pas faire cela.
Je travaille actuellement autour de cela en itérant sur les instances de plug-in installées, à partir du gestionnaire de plug-ins, mais cela repose sur le test de singe de l'instance pour supposer que nous avons la bonne instance.
https://github.com/serverless/serverless-ibm-openwhisk/blob/master/deployFunction/index.js#L15 -L16
Pouvons-nous ajouter une méthode API pour m'aider à trouver les plugins installés par leur nom?
Identifiez les plugins par un nom unique, qui doit être résolu à partir plugin.name
propriété
Si deux plugins du même nom sont détectés, affichez un message d'obsolescence qui, avec la prochaine version majeure, lancera une telle configuration
Les plugins doivent être référencés par leur nom sur la collection serverless.plugins
, et par le biais de celui accessible à d'autres plugins.
La résolution de noms et l'attribution de serlveress.plugins
devraient se produire dans la portée de la logique pluginManager.addPlugin
: https://github.com/serverless/serverless/blob/5096534a80e211b947e59d7283cfdfdd1711e7ea/lib/classes/PluginManager.js#L93 -L122
@jthomas merci d'avoir ouvert ça! 👍 Synchronisation parfaite 🕐
Nous discutons actuellement de la manière dont nous pouvons améliorer l'architecture globale du plugin / UX.
C'est génial d'avoir un tel commentaire sur les problèmes actuels (veuillez en soumettre plus si vous avez autre chose). 💯
/ cc @ ac360 @nikgraf @eahefnawy @mthenw
En effet, très bon retour! Nous veillons à ce que cela soit possible à l'avenir.
J'ai mis à jour la description principale avec la proposition de mise en œuvre. Cela peut être réalisé très simplement (je pense), et la valeur ajoutée est réelle
Commentaire le plus utile
@jthomas merci d'avoir ouvert ça! 👍 Synchronisation parfaite 🕐
Nous discutons actuellement de la manière dont nous pouvons améliorer l'architecture globale du plugin / UX.
C'est génial d'avoir un tel commentaire sur les problèmes actuels (veuillez en soumettre plus si vous avez autre chose). 💯
/ cc @ ac360 @nikgraf @eahefnawy @mthenw