我有一个python脚本,它接受命令行参数来解密文件。要执行的python命令如下所示:
python decrypt.py -f "file_to_decrypt.enc" -k "private_key_file.txt"
我正在尝试使用GetFile
中的NiFi
处理器来挑选这些文件,因为我可以在日志中看到文件名,因此我们可以选择这些文件。
另一方面,我有一个ExecuteProcess
进程设置来运行上面提到的python脚本。但是我需要将文件名传递到ExecuteProcess
以使Python脚本工作。所以我的问题是,如何将GetFile
进程中的文件传输到ExecuteProcess process
中的Apache NiFi
?
答案 0 :(得分:6)
您可以使用ExecuteStreamCommand
处理器代替ExecuteProcess
。此处理器接受传入的流文件,可以访问属性和内容,而ExecuteProcess
是源处理器,不接受传入的流文件。
我不知道你是否需要GetFile
(获取文件的内容);尝试ListFile
和RouteOnAttribute
过滤您想要的两个文件名。将两个成功的列表合并到一个包含MergeContent
的流文件中,然后使用${filename}
属性和表达式语言将命令参数填充为x.enc
和{{1} }。
<强>更新强>
我构建了a template,执行以下任务: