ウォッチャーチェーン入力

ウォッチがトリガーされたときに、chain入力を使用して複数のソースからデータをウォッチ実行コンテキストにロードします。チェーン内の入力は順番に処理され、ある入力によってロードされたデータは、チェーン内の後続の入力によってアクセスできます。

  1. たとえば、次のチェーン入力は、`````simple`````入力によって設定されたパスを使用してHTTPサーバーからデータをロードします:
  2. #### Js
  3. ``````js
  4. "input" : {
  5. "chain" : {
  6. "inputs" : [
  7. {
  8. "first" : {
  9. "simple" : { "path" : "/_search" }
  10. }
  11. },
  12. {
  13. "second" : {
  14. "http" : {
  15. "request" : {
  16. "host" : "localhost",
  17. "port" : 9200,
  18. "path" : "{{ctx.payload.first.path}}"
  19. }
  20. }
  21. }
  22. }
  23. ]
  24. }
  25. }
  26. `
チェーン内の入力は、入力が処理される順序を保証するために配列として指定されます。 (JSONは任意のオブジェクトの順序を保証しません。)
pathfirst入力によってロードします。

チェーン入力データへのアクセス

特定の入力によってロードされたデータを参照するには、その入力の名前、ctx.payload.<input-name>.<value>を使用します。

チェーン入力データの変換

特定のユースケースでは、最初の入力の出力を次の入力の入力として使用する必要があります。これには、データを次の入力に渡す前に変換を行う必要があります。

これを達成するために、指定された2つの入力の間に変換入力を使用できます。次の例を参照してください。最初の入力は、ctx.payload.firstで元の形式のまま利用可能であることに注意してください。

Js

  1. "input" : {
  2. "chain" : {
  3. "inputs" : [
  4. {
  5. "first" : {
  6. "simple" : { "path" : "/_search" }
  7. }
  8. },
  9. {
  10. "second" : {
  11. "transform" : {
  12. "script" : "return [ 'path' : ctx.payload.first.path + '/' ]"
  13. }
  14. }
  15. },
  16. {
  17. "third" : {
  18. "http" : {
  19. "request" : {
  20. "host" : "localhost",
  21. "port" : 9200,
  22. "path" : "{{ctx.payload.second.path}}"
  23. }
  24. }
  25. }
  26. }
  27. ]
  28. }
  29. }