Template Enricher
Das Modul Template Enricher ist ein Tool zur Anpassung der Datenstruktur empfangener Daten. Die einheitliche Datenstruktur dient der Unterstützung der Datenweiterverarbeitung. Es wird die Template-Sprache Scriban [1] unterstützt.
Konfigurationsparameter
Die Konfiguration des Template Enricher beinhaltet die nachfolgend beschriebenen Parameter.
Parameter | Beschreibung |
---|---|
Settings |
|
Headers | Anpassung von Metadaten (Scope, Source) |
Body | Definition der Inhalte des neuen „Ziel“ Bodys |
Library | Verwaltung von wiederverwendbaren Template-Teilen Modules Die Module sind eine Sammlung wiederverwendbarer Templates. Diese dienen dazu ein großes Template ggf. in kleinere Templates zu zerlegen um die Lesbarkeit/Wartbarkeit zu erhöhen. |
Environment | Festlegung eines statischen Objekts (JSON), Zugriff aus Body möglich |
Test | Mit dieser Methode kann die aktuelle Konfiguration des Moduls getestet werden. Es wird eine Input-Message erwartet, auf die die konfigurierten Templates angewendet werden und anschließend im Ergebnis die Trans-formierte Message zurückgeliefert wird. |
Konfiguration in der UI
Das Template Enricher-Modul kann über die Auswahl des Moduls auf der Startseite oder über die linke Menüleiste der EdgeControl UI aufgerufen und konfiguriert werden.
Settings
Für die Verwendung des Moduls muss ein, in einem anderen Modul definiertes Output Topic als Input (z.B. aus dem Modul OPCUA) sowie ein neues Output Topic definiert werden. Dieses modifizierte Topic kann beispielsweise zur Datenausgabe in Azure bzw. Splunk zugeordnet werden (Abbildung 1).

Die erläuterten Konfigurationen zu Input und Output müssen im ersten Schritt unter „Settings“ vorgenommen werden. Das Input Topic wird durch Klicken auf das "+" oder "ADD" übernommen. Mit dem Speichern werden Änderungen aktualisiert (Abbildung 2 und Abbildung 3).


Über „Remove“ kann der gewählte Input gelöscht werden. Mit dem Speichern werden die Änderungen übernommen (Abbildung 4).

Header
Im Reiter „Header“ (Abbildung 5) können Metadaten der Nachricht, wie z.B. Source und Scope, angepasst werden. Abbildung 6 zeigt eine Beispielkonfiguration an. In Abbildung 7 ist dargestellt, wo die Header-Konfiguration in Splunk zu sehen ist.



Body
Um die Rohdatenstruktur anzupassen, ist im Reiter „Body“ der Quelltext zur Umwandlung einzufügen (Abbildung 8)

Library
In dem Reiter „Library“ können wiederverwendbare Templateabschnitte, welche in jeder Template-Definition verfügbar sein müssen, verwaltet werden (Abbildung 9)

Modules
Die Module sind eine Sammlung wiederverwendbarer Templates. Diese dienen dazu ein großes Template ggf. in kleinere Templates zu zerlegen, um die Lesbarkeit/Wartbarkeit zu erhöhen. Aus jedem Template (Body, andere Module) kann auf Module zugegriffen werden. Wenn ein Modul referenziert wird, wird der Inhalt von diesem an dieser Stelle eingefügt. Der Zugriff erfolgt via "include" Directive im Template. Die Schreibweise der "include" Directive sieht wie folgt aus:
{{ include 'Test' }}
An der Stelle 'Test' steht der Name des Modules, welches an dieser Stelle "eingefügt" werden soll. Abbildung 10 zeigt eine Beispielkonfiguration.

Environment
Hier kann ein statisches Objekt (JSON) festgelegt werden, auf welches aus dem Body zugegriffen werden kann. Abbildung 11 zeigt eine Beispielkonfiguration.

Test
Hier kann die aktuelle Konfiguration des Moduls getestet werden. Es wird eine Input Message erwartet, auf die die konfigurierten Templates angewendet werden und anschließend im Ergebnis die transformierte Message zurückgeliefert wird. Abbildung 12 zeigt ein Beispiel.

Im Body wird das JSON-Format entsprechend modifiziert, so dass kein „valid“ JSON-Format beim Test entsteht. Eine Fehlermeldung weist auf diesem Umstand hin (Abbildung 13).
