Входная цепочка Watcher
Используйте вход chain, чтобы загрузить данные из нескольких источников в контекст выполнения наблюдения при срабатывании наблюдения. Входы в цепочке обрабатываются в порядке следования, и данные, загруженные одним входом, могут быть доступны последующим входам в цепочке.
Вход chain позволяет выполнять действия на основе данных из нескольких источников. Вы также можете использовать данные, собранные одним входом, для загрузки данных из другого источника.
Например, следующий входной цепочкой загружает данные с HTTP-сервера, используя путь, заданный входом simple:
"input" : {
"chain" : {
"inputs" : [
{
"first" : {
"simple" : { "path" : "/_search" }
}
},
{
"second" : {
"http" : {
"request" : {
"host" : "localhost",
"port" : 9200,
"path" : "{{ctx.payload.first.path}}"
}
}
}
}
]
}
} | Входы в цепочке задаются как массив для обеспечения порядка обработки входов. (JSON не гарантирует порядок произвольных объектов.) | |
| Загружает значение |
Доступ к данным цепочки входов
Чтобы обратиться к данным, загруженным конкретным входом, используйте имя входа, 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}}"
}
}
}
}
]
}
}
© 2023-2025 Elasticsearch
As of September 2024, Elasticsearch is available under a choice of three licenses: the Server Side Public License (SSPL), the Elastic License, or the AGPLv3 (OSI approved).
Elasticsearch and the Elasticsearch logo are trademarks of Elasticsearch B.V., registered in the U.S. and in other countries.
https://www.elastic.co/guide/en/elasticsearch/reference/7.17/input-chain.html