Watcher 链式输入
编辑Watcher 链式输入
编辑当监视器被触发时,使用 chain
输入将来自多个来源的数据加载到监视器执行上下文中。链中的输入按顺序处理,并且链中后续输入可以访问由前一个输入加载的数据。
chain
输入使您能够基于来自多个来源的数据执行操作。您还可以使用一个输入收集的数据来从另一个来源加载数据。
例如,以下链式输入使用 simple
输入设置的路径从 HTTP 服务器加载数据。
"input" : { "chain" : { "inputs" : [ { "first" : { "simple" : { "path" : "/_search" } } }, { "second" : { "http" : { "request" : { "host" : "localhost", "port" : 9200, "path" : "{{ctx.payload.first.path}}" } } } } ] } }
访问链式输入数据
编辑要引用特定输入加载的数据,您可以使用输入的名称,ctx.payload.<input-name>.<value>
。
转换链式输入数据
编辑在某些用例中,第一个输入的输出应该用作后续输入的输入。这需要您在将数据传递给下一个输入之前进行转换。
为了实现这一点,您可以在两个指定的输入之间使用转换输入,请参见以下示例。请注意,第一个输入仍然以其原始形式在 ctx.payload.first
中可用。
"input" : { "chain" : { "inputs" : [ { "first" : { "simple" : { "path" : "/_search" } } }, { "second" : { "transform" : { "script" : "return [ 'path' : ctx.payload.first.path + '/' ]" } } }, { "third" : { "http" : { "request" : { "host" : "localhost", "port" : 9200, "path" : "{{ctx.payload.second.path}}" } } } } ] } }