Skip to content

[script]Transformer

redHJ edited this page Mar 1, 2018 · 7 revisions

脚本执行的Transformer

在Parser后使用,针对key指定的字段进行替换,执行key指定字段的脚本,同时支持输入脚本或输入脚本路径进行执行。

配置如下:

{
		"type":"script",
		"key":"ScriptKey",
                "new":"RecordKey",
		"interpreter":"bash",
		"scriptpath":"",
		"script":""
}

该功能可以对指定的key进行脚本执行结果的替换。 key指定的字段里存的如果是具体脚本的路径,则支持执行该脚本并将脚本执行结果替换key指定字段的值,或者创建new指定的字段并将脚本执行结果存入该字段 key指定的字段里存的如果不是路径,则需要填写script或者scriptpath内容,此时会执行script或者scriptpath,并将脚本执行结果存入key或者new字段。

  • new 字段可以设置脚本执行结果存入一个新的字段,不改变原来字段所存的内容,如果不想改变key指定字段所存内容又想记录脚本执行结果,可以通过这个参数设置。默认情况下无需填写,脚本执行结果会替换key指定字段所存内容。
  • interpreter 字段可以设置脚本执行解释器,默认为bash。
  • scriptpath 字段支持指定脚本文件路径,如果填写了该字段,会优先执行该脚本文件,不执行key指定字段的脚本。默认情况下无需填写,默认会执行key指定字段的脚本。
  • script 字段支持指定所需执行脚本内容,如果填写了该字段,会优先执行该脚本内容,不执行scriptpathkey指定字段的脚本。默认情况下无需填写,默认会执行key指定字段的脚本。
  • key 字段支持多级嵌套,多级间用.符号连接,如abc.xyz,表示 data["abc"]["xyz"]中的数据。

配置示例

一份带有script Transformer的完整配置类似如下:

{
		"name":"test2.csv",
		"reader":{
			"log_path":"./tests/logdir",
			"mode":"dir"
		},
		"parser":{
			"name":"jsonps",
			"type":"json"
		},
		"transforms":[{
			"type":"script",
			"key":"status",
			"new":"",
			"interpreter":"bash",
			"scriptpath":"",
                        "script":""
		}],
		"senders":[{
			"name":"file_sender",
			"sender_type":"file",
			"file_send_path":"./test2/test2_csv_file.txt"
		}]
	}
Clone this wiki locally