2016-06-27 3 views
1

Mein UseCase ist dies: In Cumulocity werden viele Ereignisse von Devices gesammelt und von einigen 'Cumulocity Event Language'-Skripten verarbeitet. Nun muss ich diese Daten in einigen Backoffice- und Analysesystemen weiterverarbeiten. Meine Idee ist, die Daten durch ein Time-Window-Boxed CEL-Skript zu diesen "externen" Systemen zu pushen, indem man eine eigene (zB) JavaScript-Funktion schreibt (siehe 'https://www.cumulocity.com/guides/event-language/advanced/') und die gesammelten Daten über einen REST-Aufruf an diese sendet Systeme (die einen entsprechenden Dienst ausführen müssen).Senden von verarbeiteten Daten aus einer CEL-Regel in Cumulocity an einen externen REST-Dienst

Frage: 1) könnte diese Idee funktionieren? 2) Kann ich Helfer Bibliotheken (in JS in meinem Fall) in das CEL-Modul laden? 3) Kann ich meinen Pushing-Versuch wiederholen, wenn er fehlschlägt?

Dank MB

Antwort

1

Sie keine Anfragen direkt aus dem CEL schaffen können, aber es gibt auch andere Möglichkeiten, das zu erreichen:

  1. Sie können Zapier verwenden weiterleiten Daten an einen anderen REST Service (Überprüfen der App "Webhooks by Zapier" in Zapier. Hier finden Sie einige Einführung, wie man eine Verbindung Cumulocity mit Zapier http://cumulocity.com/guides/users-guide/saas-integration/ (Überprüfen Sie die „Store CEL Daten in Google-Tabelle“ Beispiel. Wenn Sie Google Spreadhsheets ersetzen mit den Webhooks App sollte es das sein, was Sie suchen)

  2. Sie können implementieren Ihr eigener Stecker. Die Ausgabe jeder CEL-Anweisung ist in der Echtzeitbenachrichtigungs-API (http://cumulocity.com/guides/reference/real-time-statements/#notifications) verfügbar. Sie können sich dort verbinden und die empfangenen Daten an Ihren REST-Service weiterleiten. Dies ist mehr oder weniger auch, wie der Zapier-Verbinder funktioniert. Hier könnten Sie auch eine Wiederholungslogik für fehlgeschlagene Versuche hinzufügen.

Ich würde empfehlen, mit Zapier zu beginnen. Sie können Ihre Idee sehr schnell testen und zum Testen der kostenlosen Version von Zapier reichen. Wenn es nicht alles passt, können Sie noch mit einer eigenen Implementierung wechseln.

+0

Danke. Wie ich verstehe, basiert der Mechanismus auf "Bayeux"; der Anwendungsfall dieses Protokolls ist: "Bitte informieren Sie mich sofort, wenn ein Event eintritt"; Es führt http-long-polling durch, um dies zu erreichen. Aber mein Anwendungsfall ist dies: "sende mir ** alle ** Messungen - vielleicht 1k/s - zu meinem REST-Service. Also meine Frage: * macht das 'Baye: UX-Protokoll' horizontal skalieren? Ich erwarte viele C8y Server und viele meiner Backoffice Severs ... * Kann ich viele Bayeux Clients gleichzeitig instanziieren? * Wenn ja: Wird jedes Ereignis nur einmal gesendet? * Was ist, wenn eine Übertragung "in der Mitte" ausfällt? – mbader

+0

Ja, es gibt eine Cluster-Lösung in CometD namens Oort. Sie können natürlich so viele Clients verbinden, wie Sie möchten, aber wenn Sie die gleichen Kanäle abonnieren, erhalten alle Clients alles, sodass Sie die Subskriptionen teilen müssen. Zur Sicherstellung der Datenübertragung verfügt CometD über die Erweiterung der Nachrichtenbestätigung – TyrManuZ

Verwandte Themen