我正在尝试编写一个带有两个参数的函数,nifi实例A中的处理器ID和nifi实例B中的输入端口,并在nifi实例A中创建一个RPG,它连接上面的。
现在,我是怎么做的
对/ nifi-api / process-groups // remote-process-groups端点进行POST以创建RPG并检索该RPG的ID
对/ nifi-api / process-groups //连接端点的POST,以在处理器和输入端口之间创建连接。正在提供processorID和输入端口的ID以及关系列表。
最终PUT到/ nifi-api / remote-process-groups /以启用机器之间的传输。
现在,该函数总是在步骤2中抛出错误。对于POST请求抛出409,错误为“无法找到指定的目标”。 (虽然刷新机器1上的画布显示已经创建了RPG) 但是,当我手动运行后面的步骤2和3时,使用相同的rpgid,连接就会发生。
现在,我不确定这是否是同步问题,但我想弄明白,因为我不想将步骤1 2和3分开。有人可以指出这里可能存在的问题?
PS - 当从函数中手动调用api并手动调用api时,步骤2的post消息是相同的。
答案 0 :(得分:1)
创建RPG后,它将启动后台线程以发现可用端口。我建议添加一个步骤来连续轮询GET / nifi-api / remote-process-group / {id},直到您期望的端口可用。一旦完成,您应该能够创建连接。