Documentation ¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
var JsTransformReturnFormatErr = errors.New("return the value is not a map")
JsTransformReturnFormatErr 如果脚本返回值这个格式错误:return {'msg':msg,'metadata':metadata,'msgType':msgType}
var Registry = &types.SafeComponentSlice{}
Functions ¶
This section is empty.
Types ¶
type ExprTransformNode ¶ added in v0.19.0
type ExprTransformNode struct { //节点配置 Config ExprTransformNodeConfiguration // contains filtered or unexported fields }
ExprTransformNode 使用expr表达式转换或者创建新的msg 如果config.Expr有值,则把转换结果替换到msg 转到下一个节点 如果config.Mapping有值,则把多个字段转换结果转换成json替换到msg 转到下一个节点 如果Mapping和Expr同时存在,优先使用config.Expr 多个字段转换msg结构如下:
{ fieldKey1:fieldValue1 fieldKey2:fieldValue2 }
fieldValue 可以使用 expr 从当前的msg或者metadata中获取值,例如:
"configuration": { "mapping": { "name": "upper(msg.name)", "tmp": "msg.temperature", "alarm": "msg.temperature>50", "productType": "metaData.productType", }
通过`msg`变量访问消息体,如果消息的dataType是json类型,可以通过 `msg.XX`方式访问msg的字段。例如:`msg.temperature > 50;` 通过`metadata`变量访问消息元数据。例如 `metadata.customerName` 通过`msgType`变量访问消息类型 通过`dataType`变量访问数据类型
func (*ExprTransformNode) Destroy ¶ added in v0.19.0
func (x *ExprTransformNode) Destroy()
Destroy 销毁
func (*ExprTransformNode) Init ¶ added in v0.19.0
func (x *ExprTransformNode) Init(ruleConfig types.Config, configuration types.Configuration) error
Init 初始化
func (*ExprTransformNode) New ¶ added in v0.19.0
func (x *ExprTransformNode) New() types.Node
func (*ExprTransformNode) OnMsg ¶ added in v0.19.0
func (x *ExprTransformNode) OnMsg(ctx types.RuleContext, msg types.RuleMsg)
OnMsg 处理消息
func (*ExprTransformNode) Type ¶ added in v0.19.0
func (x *ExprTransformNode) Type() string
Type 组件类型
type ExprTransformNodeConfiguration ¶ added in v0.19.0
type ExprTransformNodeConfiguration struct { //转换表达式,转换结果替换到msg 转到下一个节点。 Expr string //多个字段转换表达式,格式(字段:转换表达式),多个转换结果转换成json字符串转到下一个节点。如果Mapping和Expr同时存在,优先使用Expr Mapping map[string]string }
ExprTransformNodeConfiguration 节点配置
type JsTransformNode ¶
type JsTransformNode struct { //节点配置 Config JsTransformNodeConfiguration // contains filtered or unexported fields }
JsTransformNode 使用JavaScript更改消息metadata,msg或msgType JavaScript 函数接收3个参数: metadata:是消息的 metadata msg:是消息的payload msgType:是消息的 type 法返回结构:return {'msg':msg,'metadata':metadata,'msgType':msgType}; 脚本执行成功,发送信息到`Success`链, 否则发到`Failure`链。
func (*JsTransformNode) Init ¶
func (x *JsTransformNode) Init(ruleConfig types.Config, configuration types.Configuration) error
Init 初始化
func (*JsTransformNode) New ¶
func (x *JsTransformNode) New() types.Node
func (*JsTransformNode) OnMsg ¶
func (x *JsTransformNode) OnMsg(ctx types.RuleContext, msg types.RuleMsg)
OnMsg 处理消息
type JsTransformNodeConfiguration ¶
type JsTransformNodeConfiguration struct { //JsScript 配置函数体脚本内容 //对msg、metadata、msgType 进行转换、增强 //完整脚本函数: //function Transform(msg, metadata, msgType) { ${JsScript} } //return {'msg':msg,'metadata':metadata,'msgType':msgType}; JsScript string }
JsTransformNodeConfiguration 节点配置