我正在尝试为Apache Nifi合并一个简单的加密处理器。我正在使用脚本处理器模块来包含Python脚本,该脚本执行使用AES进行加密和解密的功能。我在加载模块PyCryptodome时遇到了麻烦(我也尝试过pycrypto),这为我提供了功能。我已经读到该模块不能加载,因为它不是纯python,显然Nifi不支持。
关于我可以替代此模块的任何建议?
答案 0 :(得分:4)
不是NiFi本身不支持本地Python模块,而是我们在NiFi中使用的Jython引擎(因为NiFi是纯Java实现)不支持它。如果在运行NiFi的节点上具有Python解释器,则可以使用ExecuteStreamCommand
通过脚本(带有本机导入)将Python外壳化为Python,您将以{{ 1}},然后编写加密/解密逻辑以输出到stdin
,这将成为输出流文件的内容。
我正在研究Py4J处理器,以便我们可以解决Jython对本机模块的限制,但是您仍然必须带上自己的Python(BYOP)。就目前而言,只要您不想做比接收流文件内容和写出流文件内容更复杂的事情,ExecuteStreamCommand应该可以解决问题。