如何在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}
时会出现什么问题?
谢谢,
约翰
答案 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}
。