在Nifi中使用自定义属性

时间:2017-10-05 16:44:26

标签: properties apache-nifi

如何在Nifi中使用另一个自定义属性? 请注意,我正在使用自定义属性文件。

例如:我在自定义属性文件中有以下内容。

prop_1=/path/to/dir1
prop_2=/path/to/dir2
prop_3=${prop_1}/${prop_2}/file1
prop_4=${prop_1}/${prop_2}/file2

现在,在nifi处理器中,支持表达式语言,当我给出

${prop_3}${prop_4}

我收到错误${prop_1}不是文件或目录。

但如果我提供的值为${prop_1}/${prop_2}/file1,则可行。

当我提出${prop_3}时会出现什么问题?

谢谢,

约翰

2 个答案:

答案 0 :(得分:3)

属性文件作为键值常量的映射加载。在加载期间没有进行评估。

您定义了prop_3=${prop_1}/${prop_2}/file1

这意味着prop_3等于文字值${prop_1}/${prop_2}/file1

在支持您设置的表达式语言的属性中:${prop_3}

和nifi正确地将${prop_3}表达式评估为字面值${prop_1}/${prop_2}/file1

答案 1 :(得分:0)

正如daggett所指出的,属性值是在单个操作中从自定义属性文件加载的,并且在加载过程中不能互相引用。但是,您可以在执行此评估的处理器之前使用UpdateAttribute处理器,并使用动态属性(单击属性表右上角的+按钮)来指定prop3 = /${prop1}/${prop2}/file1然后在任何后续处理器中引用${prop3}