Tipps & Problembehandlungen

Texteditor Komponente

Code-Vervollständigung

Bei der Verwendung von mehrzeiligen Texteditoren in IGUASU können Sie die Tastenkombination "Strg + Leertaste" verwenden, um Vorschläge zur Codevervollständigung zu erhalten. Bei einzeiligen Textfeldern, die erweiterbar sind, wird bei Verwendung des Tastaturkürzels automatisch zum mehrzeiligen Texteditor gewechselt, bevor die Vorschläge angezeigt werden.

Welche Vorschläge angezeigt werden, hängt von der aktiven Sprache des Texteditors ab. Um die aktive Sprache zu ändern, vergewissern Sie sich, dass das “Settings Panel” maximiert ist und wählen Sie dann eine unterstützte Sprache aus dem Dropdown-Menü.

NiFi Expression Language Unterstützung

In den meisten Fällen ist die aktive Standardsprache von Texteditoren "nifi", was die Verwendung der Nifi Expression Language (NiFi EL) erleichtert. NiFi EL-Ausdrücke müssen innerhalb eines "${}" geschrieben werden, so dass keine Vorschläge zur Code-Vervollständigung angezeigt werden, wenn sich der Cursor nicht an einer gültigen Stelle befindet. Um schnell einen NiFi EL-Ausdruck einzufügen, verwenden Sie den $-Button neben dem Texteditor.

Nur Texteditoren für Properties, die NiFi EL unterstützen (gekennzeichnet durch ein "$" neben dem Eigenschaftsnamen), haben einen $-Button.
Die Prozessoren TransformXML und JSONataTransformJSON unterstützen NiFi EL, erfordern aber, dass die Ausdrücke gewrapped werden. Lesen Sie die Dokumentation der Prozessoren, um zu erfahren wie.

Beim Schreiben eines NiFi EL-Ausdrucks schlägt der Texteditor die Verwendung von subjektlosen Funktionen, Funktionsverkettungen, Subjektfunktionen, Umgebungsvariablen und Attributen auf der Grundlage des Kontexts vor, der von den Syntaxregeln von NiFi EL und den aktuell in IGUASU geladenen Daten bestimmt wird. Der Kontext, der für jede Art von Vorschlägen erforderlich ist, wird im Folgenden erläutert.

Es ist möglich, NiFi EL-Ausdrücke zu verschachteln, z.B. um Attribute als Argumente für eine Funktion zu verwenden.

Subjektlose Funktion

Subjektlosen Funktionen darf innerhalb eines NiFi EL-Ausdrucks kein Text vorangestellt werden.

Funktionsverkettung

Innerhalb eines NiFi-Ausdrucks werden vorangestellte Textabschnitte (einschließlich Funktionen) als potenzielle Subjekte interpretiert, von denen aus Subjektfunktionen verkettet werden können. Der Texteditor bietet dementsprechend einen "Chain Function"-Vorschlag, der ein ":" einfügt (markiert das Ende eines Subjekts und den Beginn einer Subjektfunktion), und dann die Verwendung einer Subjektfunktion vorschlägt.

Subjektfunktion

Subjektfunktionen müssen mit einem Subjekt, gefolgt von einem ":", eingeleitet werden.

Umgebungsvariable

Die Umgebungsvariablen, die relevante Verzeichnispfade für IGUASU enthalten: "IGUASU_DRIVER_PATH", "IGUASU_KEYSTORES_PATH" und "IGUASU_PATH", werden ebenfalls vorgeschlagen. Sie können nur für sich selbst oder als Subjekt verwendet werden.

Attribute

Attribute, die im Daten-Panel vorhanden sind (entweder aus einem Provenance-Event geladen oder manuell im Daten-Panel hinzugefügt), werden vorgeschlagen. Sie können nur für sich selbst oder als Subjekt verwendet werden.

Tastaturkürzel

Action PC Mac

Code completion

Ctrl-Space

Ctrl-Space

Select all

Ctrl-A

Cmd-A

Find

Ctrl-F

Cmd-F

Replace

Ctrl-H

Cmd-Alt-F

Remove line

Ctrl-D

Cmd-D

Undo

Ctrl-Z

Cmd-Z

Redo

Ctrl-Y

Cmd-Y

Terminierung von Prozessoren

Wird ein Prozessor gestoppt, wird die aktuell laufende Task nicht unterbrochen. Stattdessen wird versucht, diese zu beenden. Angezeigt wird dies dadurch, dass der Prozessor den Status "STOPPED" erhält und in der linken unteren Ecke die Anzahl der laufenden Tasks steht.

Terminate

Unter Umständen kann es notwendig sein, diese noch laufende Task abzubrechen. Im Kontextmenu des Prozessors erscheint nun der Menüpunkt "Terminate". Wird er ausgewählt, dann wird der laufende Task abgebrochen und das dazugehörende FlowFile in die Queue zur erneuten Verarbeitung wieder eingereiht.

Absicherung von HTTP Endpunkten

Mit Basic Authentifizierung

In diesem Beispiel wird die Basic Authentifizierung in einem RouteOnAttribute-Prozessor überprüft, wobei hier Benutzername und Passwort fest hinterlegt sind. Diese könnten ebenso vorher an anderer Stelle gelesen werden und als Attribute an den RouteOnAttribute-Prozessor übergeben werden. Trifft die Bedingung zu, wird das FlowFile an den Ausgang mit dem Namen des Properties übergeben.

Basic Auth Beispiel 1
Basic Auth Beispiel 2

Mit Zertifikat

Im Gegensatz zur Umsetzung mit Basic Authentifizierung, wird hier die Authentifizierung direkt am HTTP Endpoint durchgeführt und nicht in der dahinterliegenden Schicht. Dazu wird ein SSL Context Service benötigt. In diesem Beispiel ist dies der vorkonfigurierte Virtimo Service. Dieser verwendet den Key- und Truststore aus dem folgenden Verzeichnis:

./nifi/conf/keystore.jks|truststore.jks

Zusätzlich wird unter Client Authentifikation Need Authentication ausgewählt. Dadurch wird am HTTP Endpoint ein Zertifikat zur Authentifizierung erforderlich, welches sich in dem vom SSL Context Service konfigurierten Truststore befinden muss.

Zertifikat Beispiel 1
Zertifikat Beispiel 2