1 분 소요

1. ExecuteStreamCommand

** 외부 프로세서를 실행시키고 외부 프로세서가 받는 STDIN으로 FlowFile의 Contents를 넘겨주는 작업

Python script 실행. 특적 Directory의 파일을 하나씩 전달하는 것으로 보임.

Python script 실행

2. ExecuteScript

Shell, Python, Groovy 등의 Script를 실행한다

  1. Python Script
    • Ref : https://www.youtube.com/watch?v=mxnYWTabqqQ&t=987s (37:57)
    • Property
      • Script Engine : python
      • Command path : python
      • Working directory : C:/Workspace/nifi/apache-nifi-templates/Execute Python Script
      • Argument delimiter : ;
      • Script File : /workspace/script/python01.py
        $ vi python01.py
        now_time = str(datetime.datetime.now())
        flowFile = session.get()
        filename = frowFile.getAttribute('filename')
        f = open('/workspace/result/file_list.txt', 'a')
        f.write(filename + '-' + now_time)
        f.write('\n')
        f.close()
        session.transfer(frowFile, REL_SUCCESS)
        

        Encoding (cp949 -> utf-8)

3. InvokeHTTP

RestAPI 호출

4. ExecuteProcess

Java 프로세스 실행하고 결과 받아오기

  • Ref : https://m.blog.naver.com/oper13357799/220923197486

  • Property

    • Command : java
    • Command Argument : -jar HelloProcessor.jar
    • Batch Duration : 10 sec # 작업이 끝나지 않아도 10초마다 리터값을 받아온다
    • Argumant Delimeter : ‘ ‘ # Space

5. PutEmail

SMTP로 메일 보네기