如何在Nifi的虚拟环境中运行一个有依赖关系的python脚本?

问题描述 投票:0回答:1

在Nifi中有没有办法运行一个从不同文件夹导入模块、在pipfile中指定需求并有参数传递的python脚本?

简而言之,如何用Nifi执行一个平时在我的虚拟环境中运行的python脚本?

我的最终目标是使用Get File来获取一个文件,然后把它发布到API。我试过执行进程,执行流命令处理器。

python-3.x apache-nifi minify dataflow pipenv
1个回答
2
投票

要使用Python对flowfile进行后续处理,你可以使用 ExecuteStreamCommandExecuteScriptInvokeScriptedProcessor 处理机。

ExecuteStreamCommand 处理器将运行一个外部shell命令,如 python3 my_python_script.py -arg1 string -arg2 213,它可以包装自定义的Python代码并使用 STDIN 传递现有的流文件内容和 STDOUT 来捕获新的流文件内容。填充 命令参数命令路径 处理器的属性来定位您的 python 可执行文件并提供 CLI 参数,包括通过 NiFi 表达式语言提供的 flowfile 属性。参见 本回答 为例。

ExecuteScript 处理器在与NiFi相同的JVM中运行Jython代码(Python但不访问本地库,只兼容Python 2.7,以及其他一些由于JSR-223的限制)。你可以直接用Python代码处理流文件的属性和内容。请看 本回答本回答 更多细节。

© www.soinside.com 2019 - 2024. All rights reserved.