云工作流的流程定义语言提供部分内置函数,您可以使用内置函数执行基本的数据处理操作。本文介绍云工作流常见的内置函数。
索引
云工作流的流程定义语言中,根据数据处理任务的类型,将内置函数分为以下几类。
通用操作
数组操作
Map操作
数据编码与解码
哈希计算与UUID生成
JSON数据操作
IO构造中,如果要使用内置函数,需要在流程定义语言支持的构造器的Key的末尾添加.$
,用于表示对应的Value为表达式,需要进行表达式解析,否则将会作为字符串处理。当前IO构造中,最多支持10层的内置函数嵌套。
系统内置函数
以下为云工作流的系统内置函数,您可以直接使用。
arrayContains
介绍:用于判断数组中是否包含某元素。
参数:
[]any
返回值:
bool
使用示例:
arrayContains(["Tom",10],10)
arrayContains(["Tom",10],"Jack")
输出示例:
true
false
arrayUnique
介绍:用于删除数组中的重复元素。
参数:
[]any
返回值:
[]any
使用示例:
arrayUnique([1, 2, 3, 1])
输出示例:
[1, 2, 3]
format
介绍:使用{}占位符语法进行格式化。
参数:
string, ...any
模板,参数列表
返回值:
string
使用示例:
format("hello {}","world")
输出示例:
"hello world"
fromBase64
介绍:用于对字符串进行Base64解码。
参数:
string
返回值:
string
使用示例:
fromBase64("Rm5G")
输出示例:
"FnF"
stringToJson
介绍:用于将JSON String转换为对象JSON Object/map[string]any。
参数:
string
返回值:
map[string]any
使用示例:
fromJSON('{"name": "Tom", "age": 10}')
输出示例:
{"name": "Tom", "age": 10}
hash
介绍:用于使用特定算法生成输入的hash值。
参数:
string,string
输入,算法
MD5
SHA-1
SHA-256
SHA-512
返回值:
string
使用示例:
hash("abc","MD5")
输出示例:
"900150983cd24fb0d6963f7d28e17f72"
jsonMerge
介绍:用于将两个JSON Object/map[string]any合并。
参数:
map[string]any,map[string]any
返回值:
map[string]any
使用示例:
jsonMerge({"name": "Tom", "age": 10},{"name": "Tom", "address": "beijing"})
输出示例:
{"name": "Tom", "age": 10, "address": "beijing"}
length
介绍:用于获取array、map和string的长度。
参数:
[]any
map[string]any
string
返回值:
int
使用示例:
length([1, 2, 3])
length({"name": "Tom", "age": 10})
length("name")
输出示例:
3
2
4
mapKeys
介绍:用于将JSON Object/map[string]any中的Key抽取为数组。
参数:
map[string]any
返回值:
[]string
使用示例:
mapKeys({"name": "Tom", "age": 10})
输出示例:
["name","age"]
mapValues
介绍:用于将JSON Object/map[string]any中的Value抽取为数组。
参数:
map[string]any
返回值:
[]any
使用示例:
mapValues({"name": "Tom", "age": 10})
输出示例:
["Tom",10]
mapValuesPartition
介绍:用于将JSON Object/map[string]any中的Value抽取为数组,并将结果按照一个步进切割为多个数组。
参数:
map[string]any
返回值:
[][]any
使用示例:
mapValuesPartition({"name": "Tom", "age": 10},1)
输出示例:
["Tom"],[10]
regexMatchString
介绍:用于使用简单的正则表达式匹配字符串函数。
参数:
string, string
表达式,待匹配值
返回值:
bool
使用示例:
regexMatchString("p([a-z]+)ch", "peach")
regexMatchString("p([a-z]+)ch", "p123ch")
输出示例:
true
false
split
介绍:用于将字符串按照指定分隔符切分。
参数:
string,string
返回值:
[]string
使用示例:
split("item1,item2,item3", ",")
输出示例:
["item1", "item2", "item3"]
toArray
介绍:用于将任意长度的入参转换成一个数组返回。
参数:
any
返回值:
[]any
使用示例:
toArray(1,'strig',$Input.var)
输出示例:
[]any{1, 'string', $valueOfVar}
toBase64
介绍:用于对字符串进行Base64编码。
参数:
string
返回值:
string
使用示例:
toBase64("FnF")
输出示例:
"Rm5G"
jsonToString
介绍:用于将JSON Object/map[string]any转换为字符串。
参数:
map[string]any
返回值:
string
使用示例:
toJSON({"name": "Tom", "age": 10})
输出示例:
'{"name": "Tom", "age": 10}'
uuid
介绍:用于生成一个uuid。
参数:
返回值:
string
使用示例:
uuid()
输出示例:
159fd8c1-2ec3-4d7b-b9fd-60b9d8841000