在Apache Nifi中,我可以在没有属性的情况下评估表达语言



例如,在自定义处理器中,我可能希望简单地评估字符串中的表达式" $ {uuid()}"(作为示例)。

我不想将属性暴露给用户,我只想评估表达式。我可以做吗?

在自定义处理器(或脚本处理器)中

import org.apache.nifi.components.PropertyValue;
...
String expression = "${UUID()}";
PropertyValue myValue = context.newPropertyValue( expression );

在这种情况下,这足以评估表达式,因为对表达方式中的其他属性不依赖:

String result = myValue.evaluateAttributeExpressions().getValue();

但是,如果您在表达式中使用属性:

Map<String, String> attributes = ...;
String result = myValue.evaluateAttributeExpressions(attributes).getValue();

或流file中的所有必需属性:

String result = myValue.evaluateAttributeExpressions(flowFile).getValue();

最新更新