私は、プロセッサの以下の配列を有する:InvokeHTTPにPOSTクエリの特定の値を代入する方法は?
私はReplaceText
プロセッサを使用してPOSTクエリーのボディを作成します。このプロセッサはInvokeHTTP
にリンクされています。 ReplaceText
で置換値は次のとおり
{
"size": 0,
"query": {
"bool": {
"filter": [
{"term": {"Field1": ""}},
{"term": {"Field2": ""}},
{"term": {"Field3": ""}},
{"term": {"Field4": ""}}
]
}
},
"aggs": {
"range": {
"date_range": {
"field": "Datetime",
"ranges": [
{
"from": "2017-02-17T16:00:00Z||-1H/H",
"to": "2017-02-17T16:00:00Z||/H"
}
]
}
}
}
}
InvokeHTTP
でクエリを実行する前に、私は(入力FlowFileの実際のフィールドの値に応じField1
、Field2
、Field3
とField4
の値を交換する必要がありますUpdateAttribute
の出力)。クエリField1
ではなく空の文字列のABC
に等しくなければならない私のPOSTでのよう
例えば、入力FlowFileに私は、ABC
に等しいField1
持っています。
これを行うにはどうすればよいですか?
ありがとうございます。私は一つの事を理解していない。私はこのコンテンツ '{" field1 "、" field2 ":" BBB "、" field3 ":" CCC "}'でFlowFileを出力する 'ListenHTTP'を持っているとしましょう。 'ListenHTTP'の直後に、' UpdateAttribute'を追加して、値 '$ {field1}'、 '$ {field2}'と '$ {field3}'のプロパティ 'field1'、' field2'、 'field3'を作成しました。しかし、 '{" term {: "{Field1": "$ {field1}"}}を設定すると、あなたの提案したPOSTクエリで、すべてのフィールドが空になります。何が欠けていますか? – Dinosaurius
あなたのフィールドはコンテンツではなく、属性にあります。そのため、表現言語を使用してフィールドを参照することはできません。それらをJSONと属性に取り込むには、EvaluateJsonPathを使用します。 "field1"という動的プロパティがあり、値はJSONパス "/ field1"で、残りのフィールドは同じです。 EvaluateJSONPathはあなたのフローのUpdateAttributeを置き換えます。 – mattyb
今それは正常に動作します。 – Dinosaurius