2017-01-17 20 views
1

私はNIFIを初めて使用しており、カフカからS3バケットにデータをプッシュしたいと考えています。私はPutS3Objectプロセッサを使用しており、Bucketの値をmphdf/orderEventとしてハードコードするとS3にデータをプッシュできますが、JsonにあるFlowFileの内容のフィールドに基づいてバケットを指定します。したがって、Jsonのコンテンツが{"menu": {"type": "file","value": "File"}}の場合、Bucketプロパティの値はmphdf/$.menu.typeとしてもよいですか?私はこれを行い、以下のエラーを取得しようとしました。私は、PutS3ObjectプロセッサでFlowFileコンテンツにアクセスし、バケット名を設定可能にする方法があるのか​​、独自のプロセッサを構築する必要があるのか​​を知りたいですか?NIFI PutS3Object ProcessorのFlowFileコンテンツへのアクセス

ERROR [Timer-Driven Process Thread-10] 
o.a.nifi.processors.aws.s3.PutS3Object 
com.amazonaws.services.s3.model.AmazonS3Exception: The XML you 
provided was not well-formed or did not validate against our 
published schema (Service: Amazon S3; Status Code: 400; Error Code: 
MalformedXML; Request ID: 77DF07828CBA0E5F) 

PutS3Object Nifi Processor

答えて

2

私は何がやりたいことはJSONコンテンツに対して任意JSONPath式を評価し、属性をflowfileした結果を抽出EvaluateJSONPathプロセッサを、使用していると信じています。その後、PutS3Object構成のNiFi Expression Languageを使用してflowfile属性を参照できます(オブジェクトキー${filename}を参照)。あなたはmphdf/${menuType}ことバケツを持っているでしょう。このように、あなたは$.menu.typeを評価するだろうし、PutS3Objectで、その後、EvaluateJSONPathプロセッサ内の属性menuTypeにそれを格納します。

あなたはそれを少しでも遊ばなければならないかもしれませんが、私の頭の上から外れていなければならないと思います。

関連する問題