我已经更新了变量注册表以指向自定义属性文件,并且能够使用表达式语言在处理器中读取这些内容而没有任何问题。
我怎么想在我的自定义处理器(扩展AbstractProcessor)的onTrigger()中读取它们
我尝试了flowFile.getAttributes()和context.getAllProperties(),但是没有被捡起来。
感谢所有输入。
谢谢
答案 0 :(得分:2)
为澄清起见,您想在CustomProcessor#onTrigger()
方法的应用程序逻辑中引用这些外部定义的变量的值吗?
您可以:
NiFiProperties#getVariableRegistryProperties()
或NiFiProperties#getVariableRegistryPropertiesPaths
来加载变量定义。引用了变量定义后,就可以根据需要解析和使用它们。 PropertyDescriptor
将列出expressionLanguageSupported()
并返回一个ExpressionLanguageScope
,它是由enum
,NONE
和VARIABLE_REGISTRY
组成的FLOWFILE_ATTRIBUTES
(其中还包括VR)。 我不了解您希望代码加载流程管理员无法控制的自定义变量的情况,该变量将通过处理器属性或flowfile属性进行填充。如果确实需要访问上下文或流程文件不提供的自定义变量,则可以使用上面的选项1,但理论上也可以将这些变量存储在环境变量,系统属性等中。