脚本有效负载转换
Elastic Stack 无服务器
一种有效负载转换,它在监视执行上下文中对当前有效负载执行脚本,并将其替换为新生成的有效负载。 以下代码片段显示了如何在监视级别上定义简单的脚本有效负载转换
提示
{
"transform" : {
"script" : "return [ 'time' : ctx.trigger.scheduled_time ]"
}
}
- 一个简单的
painless
脚本,它创建一个新的有效负载,其中包含一个time
字段,用于保存计划时间。
注意
执行的脚本可以返回一个有效的模型,该模型等效于 Java™ Map 或 JSON 对象(您需要查阅特定脚本语言的文档以找出此构造是什么)。 返回的任何其他值都将被分配并可通过 _value
变量访问。
script
属性可以保存一个字符串值,在这种情况下,它将被视为内联脚本,并将假定默认的 Elasticsearch 脚本语言(如 脚本 中所述)。 您可以使用 Elasticsearch 支持的其他脚本语言。 为此,您需要将 script
字段设置为一个描述脚本及其语言的对象。 下表列出了可以配置的可能设置
名称 | 必需 | 默认 | 描述 |
---|---|---|---|
inline |
是 | - | 当使用内联脚本时,此字段保存脚本本身。 |
id |
是 | - | 当引用存储的脚本时,此字段保存脚本的 id。 |
lang |
否 | painless |
脚本语言 |
params |
否 | - | 脚本可访问的附加参数/变量 |
当使用脚本的对象表示法时,必须定义 inline
或 id
字段中的一个(且仅一个)。
注意
除了提供的 params
之外,脚本还可以访问 标准监视执行上下文参数。