ここに示すように、単純なPythonスクリプト(.pyファイルとして保存)を使用したApache NiFiでのExecuteScriptプロセッサの非常に基本的なセットアップがあります。プロセッサのプロパティで、スクリプトを設定します。エンジンをpythonに、スクリプトファイルをこのスクリプトのパスに。
import time
count = 0
while(count < 20):
print "The counter says: ", count
count = count + 1
time.sleep(.1)
ログまたはPutFileに出力されたものが何も表示されません。ただし、printステートメントは\ nifi-0.6.1\logs\nifi-bootstrap.logに表示されます。これについての私の知識は現在限られています。 ExecuteScriptプロセッサの使用方法を知っている人からの回答をいただければ幸いです。また、現在の設定よりも優れた例を教えてください。
スクリプトを考えると、すべてが期待どおりに機能していると思います。スクリプトはFlowFilesを生成しないため、ExecuteScriptから他のプロセッサに何も移動せず、システム出力に送信されたものはすべてbootstrap.logにキャプチャされるため、printステートメントはそこで終了します。
ExecuteScriptでで実行するスクリプトは、いくつかの標準オブジェクトにアクセスできます。
FlowFilesを生成するには、session.create()を呼び出し、結果のFlowFileを取得してREL_SUCCESSに転送する必要があります。
スクリプトプロセッサに関する最良の情報源は、Matt Burgessのブログです。このページには、いくつかの優れた背景があります(Groovyを使用)。
http://funnifi.blogspot.com/2016/02/executescript-processor-hello-world.html
これにはJythonの例があります。
http://funnifi.blogspot.com/2016/03/executescript-json-to-json-revisited_14.html