Входная цепочка 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/8.17/input-chain.html