Serverless: API pour permettre aux plugins d'accéder à d'autres plugins

Créé le 24 nov. 2016  ·  3Commentaires  ·  Source: serverless/serverless

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?


Proposition de mise en œuvre

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

caplugin deprecation enhancement good first issue help wanted

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

Tous les 3 commentaires

@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

Cette page vous a été utile?
0 / 5 - 0 notes