2016-06-02 4 views
1

Ich habe einen funktionierenden Webservice mit nifi, wo ich einen HTprequest bekomme und kann darauf antworten. Für den Test verwende ich ReplaceText, um der Antwort einen bestimmten Inhalt hinzuzufügen. Das funktioniert, aber mein Ziel ist es, einen Flowfile (oder den Wert davon) als Inhalt der httpresponse hinzuzufügen.Wie füge ich einen Apache NIFI Flowfile in eine httpResponse ein

Der Usecase ist, dass ich Informationen (von Kafka, HDFS, ...) als eine Antwort eines httprequest (REST Webservice) senden kann.

Ich suchte und testete für eine Lösung, aber nichts funktioniert. Ist es möglich mit einem Standard-Prozessor von Apache NiFi (Hortonworks HDF)?

freundlichen Grüßen n3

Antwort

2

Sie sollten den Inhalt der Flow-Datei zurück durch HandleHttpResponse senden können. Um zum Beispiel einen Web-Service zu erstellen, die Dateien aus HDFS kehrt sollten Sie in der Lage sein, etwas zu tun wie:

HandleHttpRequest -> FetchHDFS -> HandleHttpResponse

Sie müssen möglicherweise etwas mehr Material vor FetchHDFS tun, zu manipulieren die Daten, aber das wäre der allgemeine Ansatz. Der Schlüssel ist, dass Sie einen Prozessor benötigen, der eingehende Flussdateien akzeptiert, so dass Sie für Kafka das gleiche mit PutKafka tun können, aber nicht mit GetKafka, da es keine eingehende Flussdatei akzeptiert.

Diese GitHub Repo hat ein Beispiel für einen Web-Service, eine Datei von der lokalen Festplatte abruft: https://github.com/bbende/nifi-streaming-examples

das erste Bild sehen, wo es heißt „Handle Antrag auf Log-Stufen“.

+0

danke für die Antwort. Mein Problem ist, dass ich Kafka verwenden möchte und wie du geschrieben hast, ist das nicht möglich, da GetKafka eingehende Flussdateien nicht akzeptiert. Sie erwähnen stattdessen PutKafka, aber wie? Ich bin etwas durcheinander :? –

+1

Für Kafka habe ich gesagt, dass Sie einen Webservice machen könnten, der als Kafka-Produzent fungiert, indem Sie eine POST-Anfrage an HandleHttpRequest -> PutKafka -> HandleHttpResponse schicken, aber derzeit gibt es keine Möglichkeit, einen Webdienst zu erstellen handeln als Kafka-Konsument. Wir müssten sehen, ob es sinnvoll ist, eingehende Flow-Dateien zu GetKafka zuzulassen, derzeit ist es ein Quellprozessor. –

+0

Also gibt es keine Möglichkeit, etwas von Kafka basierend auf einer HttpRequest zu senden? Hm ... sollte es mit MergeContent oder ReplaceText funktionieren? Ich habe es versucht, aber es funktioniert nicht. –

Verwandte Themen