我有以下JSON:
SSDT
我要根据Alert中的字段是否为“严重”来对此路由。
我已经尝试过RouteOnAttribute处理器和一个EvaluateJson处理器。都没有工作。
对于我尝试过的RouteOnAttribute
允许:{
"From": "stuart",
"Payload": {
"Alert": "Critical",
"Recipient": "Joe"
}
}
然后我有一个基于Alerted的关系,但是我的RouteOnAttribute处理器什么也没进入,队列一直坐在那里直到它填满10,000。
我需要路由完整的JSON,我不会在路由中丢失信息。
答案 0 :(得分:7)
问题在于 jsonPath 函数适用于流文件属性,但是您没有与流文件相关联的有效载荷属性。
如何向流文件添加属性?
generateflowfile处理器之后,使用 EvaluateJsonPath 处理器,将目标作为flowfile-attribute ,
添加新属性
payload.alert为$ .Payload.Alert
然后使用routeonattribute处理器将新属性添加为
允许
#Mobules of script
use JIRA::REST;
use Data::Dumper;
use Devel::Trace;
use JSON;
# Iterate on issues
my $search = $jira->POST('/search', undef, {
jql => 'project = xxx AND issuetype = Bug AND status = Unassigned AND created >= -10m',
startAt => 0,
maxResults => 1,
fields => [ qw/summary status assignee/ ],
});
foreach my $issue (@{$search->{issues}}) {
print "Found issue $issue->{key}\n";
}
# Attach files using an utility method
my $filename = "/root/perl-script/image.txt";
# Attach files using an utility method
$jira->attach_files(xxx-56639, ($filename));
流量:
${payload.alert:equals('Critical')}