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路由,否則走其他路由