首页 > 解决方案 > 在流期间执行一次 NIFI InvokeHTTP 处理器,而不是基于每个入站流文件

问题描述

我有一个 NIFI 流,可以将文件从一个 FTP 服务器移动到另一个。该流程以 ListSFTP 处理器开始,以 PutSFTP 处理器结束。使用 PutSFTP 处理器进行身份验证所需的密码存储在另一个应用程序中,该应用程序公开 REST 端点以获取密码。我想获得一次密码并使用相同的密码将所有获取的文件放入目标 SFTP 服务器。请告知在这种情况下我可以在哪里/如何使用 InvokeHTTP 处理器,以便不会为每个流文件调用它(在每个流文件的基础上获取密码是没有意义的)。

标签: apache-nifi

解决方案


根据 auth-token 的生存时间创建一个按时间安排的并行流。

例如,如果令牌在 60 分钟内有效 - 然后每 45 分钟安排一次。

RequestAuth(InvokeHTTP) --> PutDistributedMapCache

并在您的主要流程中使用FetchDistributedMapCache而不是 InvokeHTTP


推荐阅读