NiFi中UpdateAttribute处理器嵌套EL表达式转义问题求助
解决NiFi 1.24.0 UpdateAttribute保留嵌套EL表达式的问题
推荐方案:禁用目标属性的EL解析
在UpdateAttribute处理器里,针对你要设置的属性:
- 点击属性右侧的齿轮按钮
- 勾选 Disable Expression Language Evaluation 选项
- 直接填入目标表达式:
${numer_1:multiply(${number_2})}
这样UpdateAttribute会直接把这段字符串作为属性值存储,不会尝试解析其中的EL语法,后续用${attribute:evaluateELString()}时就能正常解析嵌套的表达式。
替代方案:多层转义(适用于无法禁用EL的场景)
如果必须启用该属性的EL解析,要对每个需要保留的$做双重转义:
- 输入内容应为:
$$$$${numer_1:multiply($$$$$${number_2})} - 解析流程:
- UpdateAttribute阶段:每两个
$会被替换成一个,因此$$$$变为$$,最终得到$$${numer_1:multiply($$$${number_2})} - 后续
evaluateELString()阶段:再次将$$替换为单个$,得到你想要的${numer_1:multiply(${number_2})}
- UpdateAttribute阶段:每两个
内容的提问来源于stack exchange,提问作者red_eyes
相关产品推荐
相关产品推荐

