2016-09-29 6 views
1

Ich habe mehrere Stunden damit verbracht, die Ausdruckssprache herauszufinden, um den Flowfile-Inhalt zu erhalten.Wie erhalte ich den Inhalt?

Haben Sie einen einfachen Test Flow Nifi zu versuchen und zu lernen, wo ich: GetMongo -> LogAttributes -> Setzen Sie Slack

-----------------------LOG1----------------------- 
Standard FlowFile Attributes 
Key: 'entryDate' 
     Value: 'Wed Sep 28 23:58:36 GMT 2016' 
Key: 'lineageStartDate' 
     Value: 'Wed Sep 28 23:58:36 GMT 2016' 
Key: 'fileSize' 
     Value: '70' 
FlowFile Attribute Map Content 
Key: 'filename' 
     Value: '43546945658800' 
Key: 'path' 
     Value: './' 
Key: 'uuid' 
     Value: 'd1e10623-0e90-44af-a620-6bed9776ed62' 
-----------------------LOG1----------------------- 
{ "_id" : { "$oid" : "57ec27ec35a0759d54fb465d" }, "keyA" : "valueA" } 

Im putSlack Ausdruck für den Test habe ich versucht:

${flowfile.content} 
${message} 
${payload} 
${msg} 
${flowfile-content} 
${content} 

Antwort

5

Es gibt keine Ausdruckssprache, die auf den Inhalt der Flussdatei zugreift. Die Attribute und der Inhalt werden absichtlich sehr unterschiedlich gespeichert, um das Bewegen einer Flussdatei zu erleichtern, die eine große Nutzlast darstellen könnte. Die Ausdrucksprache arbeitet nur mit Attributen.

Der ExtractText-Prozessor kann verwendet werden, um den gesamten Inhalt der Flow-Datei in ein Attribut zu extrahieren. Denken Sie daran, dass dies nur geschehen sollte, wenn Sie wissen, dass der Inhalt kein Problem hat.

+0

Um dies hinzuzufügen, listet der Apache NiFi Expression Language (EL) Guide alle EL-Funktionen und deren Verwendung auf: https://nifi.apache.org/docs/nifi-docs/html/expression-language -guide.html – JDP10101

+0

@Bryan können Sie es bitte ein wenig ausarbeiten, wie Sie den gesamten Inhalt in Attribut nehmen und auch sagen, wie man es wieder zurückbekommt.Bitte benötigen Sie Ihre Antwort Danke –

+0

Wenn Sie den ExtractText-Prozessor verwenden und einen benutzerdefinierten hinzufügen Eigenschaft, wird der Name der benutzerdefinierten Eigenschaft zu einem Flow-Dateiattribut, und der Wert der Eigenschaft ist ein regulärer Ausdruck, der auf den Inhalt angewendet wird. Also wählt foo =. * Den gesamten Inhalt und fügt ihn in ein Attribut namens foo ein. –

Verwandte Themen