在NIFI PutS3Object处理器中访问FlowFile内容

时间:2017-01-17 19:30:11

标签: amazon-s3 apache-nifi

我是NIFI的新手,想要将数据从Kafka推送到S3存储桶。我正在使用mainFrame.setVisible(false); newFrame.setVisible(true); 处理器并且可以将数据推送到S3,如果我将Bucket值硬编码为mphdf / orderEvent,但我想根据FlowFile内容中的字段指定存储桶,这是在Json中。因此,如果Json内容是PutS3Object,那么我可以将Bucket属性的值设为{"menu": {"type": "file","value": "File"}}吗?我试图这样做,并得到以下错误。我想知道是否有办法使用PutS3Object处理器访问FlowFile内容并使Bucket名称可配置或我是否必须构建自己的处理器?

mphdf/$.menu.type

PutS3Object Nifi Processor

1 个答案:

答案 0 :(得分:4)

我相信你想要做的是使用一个EvaluateJSONPath处理器,它根据JSON内容评估任意JSONPath表达式,并将结果提取到flowfile属性。然后,您可以使用PutS3Object配置中的NiFi表达式语言引用flowfile属性(请参阅引用${filename}的第一个属性对象键)。通过这种方式,您可以评估$.menu.type并将其存储到EvaluateJSONPath处理器中的 menuType 属性中,然后在PutS3Object中将 Bucket < / strong> be mphdf/${menuType}

你可能不得不玩一下但我不认为这应该有用。