Serverless: API, mit der Plugins auf andere Plugins zugreifen können

Erstellt am 24. Nov. 2016  ·  3Kommentare  ·  Quelle: serverless/serverless

Bei der Arbeit an der OpenWhisk-Provider-Implementierung für Serverless bin ich auf eine Herausforderung gestoßen, bei der versucht wurde, über meine Plugins auf andere Plugin-Instanzen zuzugreifen.

Im deployFunction- Plugin müssen wir auf das vorhandene Paket- Plugin zugreifen, um das Packen eines einzelnen Funktionsartefakts zu verwalten.

In der AWS-Provider-Implementierung kann die Klasse über einen lokalen Dateipfad direkt auf das Modul verweisen. https://github.com/serverless/serverless/blob/master/lib/plugins/aws/deployFunction/index.js#L9

Das OpenWhisk-Plugin ist ein Plugin eines Drittanbieters und kann dies nicht.

Ich arbeite derzeit daran, indem ich die installierten Plugin-Instanzen vom Plugin-Manager aus durchlaufe. Dies beruht jedoch darauf, dass die Instanz durch Affen getestet wird, um anzunehmen, dass wir die richtige Instanz haben.
https://github.com/serverless/serverless-ibm-openwhisk/blob/master/deployFunction/index.js#L15 -L16

Können wir eine API-Methode hinzufügen, mit der ich installierte Plugins anhand ihres Namens finden kann?


Umsetzungsvorschlag

Identifizieren Sie Plugins anhand eines eindeutigen Namens, der entweder aus der Eigenschaft plugin.name oder dem Namen des nicht kapitalisierten Konstruktors aufgelöst werden sollte.

Wenn zwei gleichnamige Plugins erkannt werden, zeigen Sie eine Verfallsmeldung an , die bei der nächsten Hauptversion durch ein solches Setup ausgelöst wird

Plugins sollten in der Sammlung serverless.plugins namentlich referenziert und über diese für andere Plugins zugänglich sein.

Die Namensauflösung und die Zuweisung von serlveress.plugins sollten im Rahmen der Logik pluginManager.addPlugin : https://github.com/serverless/serverless/blob/5096534a80e211b947e59d7283cfdfdd1711e7ea/lib/classes/PluginManager.js#L93 -12L

caplugin deprecation enhancement good first issue help wanted

Hilfreichster Kommentar

@jthomas danke fürs öffnen! 👍 Perfektes Timing 🕐

Wir diskutieren derzeit, wie wir die gesamte Plugin-Architektur / UX verbessern können.
Schön, ein solches Feedback zu aktuellen Schmerzpunkten zu haben (bitte reichen Sie mehr ein, wenn Sie etwas anderes haben). 💯

/ cc @ ac360 @nikgraf @eahefnawy @mthenw

Alle 3 Kommentare

@jthomas danke fürs öffnen! 👍 Perfektes Timing 🕐

Wir diskutieren derzeit, wie wir die gesamte Plugin-Architektur / UX verbessern können.
Schön, ein solches Feedback zu aktuellen Schmerzpunkten zu haben (bitte reichen Sie mehr ein, wenn Sie etwas anderes haben). 💯

/ cc @ ac360 @nikgraf @eahefnawy @mthenw

In der Tat sehr gutes Feedback! Wir stellen sicher, dass dies in Zukunft möglich ist.

Ich habe die Hauptbeschreibung mit dem Implementierungsvorschlag aktualisiert. Es kann ganz einfach erreicht werden (glaube ich), und der Mehrwert ist real

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen