nifi ExecuteScript、RouteOnAttribute使用

ExecuteScript

本文使用python,其他語言請參考這裏

1.從FlowFile獲取文件:

flowFile = session.get()

2.腳本結束後路由(不路由會報錯)

#路由到成功
session.transfer(flowFile, REL_SUCCESS)
#路由到失敗
session.transfer(flowFile, REL_FAILURE)

3.設置文件屬性

    flowFile = session.putAttribute(flowFile, 'attr', 'attr')

4.完整代碼

from org.apache.commons.io import IOUtils
from java.nio.charset import StandardCharsets
from org.apache.nifi.processor.io import StreamCallback
 
flowFile = session.get()
class PyStreamCallback(StreamCallback):
  def __init__(self):
        pass
  def process(self, inputStream, outputStream):
    text = IOUtils.toString(inputStream, StandardCharsets.UTF_8)
    #正文
    outputStream.write(bytearray(text.encode('utf-8')))

if(flowFile != None):
    flowFile = session.write(flowFile, PyStreamCallback())
    flowFile = session.putAttribute(flowFile, 'attr', 'atr')
    session.transfer(flowFile, REL_SUCCESS)

RouteOnAttribute

根據表達式匹配屬性進行文件路由

添加路由條件,當符合條件時匹配description路由,否則走其他路由

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章