NiFi 在处理器之间传输数据

NiFi transfering data between processors

我想创建一个简单的流程。首先,我需要从 REST 服务中获取 accountIds,然后使用接收到的值创建新的 HTTP 请求以获取令牌,然后使用此令牌通过 Oauth2 创建一些请求。

AccountIds 流程:

来自 InvokeHttp 我会在 json 中收到一些 ID(REST 写在 Java 和 returns List with Integers 中)。 99% 的可能性只有一个数字。我的回复看起来像:[40]。现在我需要替换方括号并得到这个数字(使用 SplitJson)。这个数字我应该放在下一个 getToken 作为 GET 参数之一(在屏幕截图上我硬编码):

这将 return 一个令牌。 Token是一个text/plain;charset=UTF-8。然后,我想再次使用 InvokeHttp,添加属性 Authorization 并添加到此属性 Bearer + received token。我真的不明白如何在以下处理器中使用从处理器接收到的数据。有人可以解释一下如何通过我的流程到达它吗?

其余 Api 为您提供有效载荷主体 - 在 nifi 术语中 flowfile content,您需要使用 evaluatejson 解析传入内容(如果有效载荷是 json - 在大多数情况下)并将其存储在 flow attributes 中。 然后这个属性将在下游处理器中使用。

另外,要将 Authorization 传递给您的 InvokeHTTP,您需要在 InvokeHTTP 处理器中对其进行 decalre。 ${access_token} 来自上游属性提取。