transform

package
v0.20.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 23, 2024 License: Apache-2.0 Imports: 11 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var JsTransformReturnFormatErr = errors.New("return the value is not a map")

JsTransformReturnFormatErr 如果脚本返回值这个格式错误:return {'msg':msg,'metadata':metadata,'msgType':msgType}

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) Destroy

func (x *JsTransformNode) Destroy()

Destroy 销毁

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 处理消息

func (*JsTransformNode) Type

func (x *JsTransformNode) Type() string

Type 组件类型

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 节点配置

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL