3

我有一个观察者配置如下:

{
  "trigger": {
    "schedule": {
      "interval": "5s"
    }
  },
  "input" : {
    "search" : {
      "request" : {
        "indices" : [ "my_index" ],
        "types" : [ "my_type" ],
        "body" : {
          "query" : {
            "match_all" : {}
           }
        }
      }
    }
  },
  "transform" : {
      "script" : "return [ body: groovy.json.JsonOutput.toJson(ctx.payload.hits.hits)]"
  },
  "actions" : {
    "hbase_webhook" : {
        "webhook" : {
            "method" : "POST",
            "host" : "<some_ip>",
            "port" : <some_port>,
            "path": "/v0.1/_events",
            "body" : "data: {{ctx.payload.body}}"
        }
    }
  }
}

正文中发布的数据不是有效的 JSON:类似于:

{ 'data: ': { '{"_index":"my_index","_type":"my_type","_source":{"key":"val"}},"_id":"<some_id>","_score":1.0}': '' } }

我不知道如何解析这个输出,因为 Node.js 中的 JSON.parse 无论如何都不会正确解析它。

4

2 回答 2

3

绝不。忘记。标题。

我忘记了:

"headers" {
    "Content-type": "application/json"
}

所以不可能用任何工具解析。

于 2016-05-30T12:31:17.497 回答
1

在为端点创建警报时遇到了这个问题,我们只想发送符合特定条件的实际记录。请参阅下面的示例:

"actions": {
    "my_webhook": {
      "webhook": {
        "scheme": "https",
        "host": "webhook.site",
        "port": 443,
        "method": "post",
        "path": "/webhooksiteguidwouldbehere",
        "params": {},
        "headers": {
          "Content-type": "application/json"
        },
        "body": "{{#toJson}}ctx.payload.hits.hits{{/toJson}}"
      }
    }
  }

第二个注意事项:如果 body size 设置为 0,您的 hits 将返回为 null。:)

于 2021-05-04T14:02:37.977 回答