云工作流的流程定義語言提供部分內置函數,您可以使用內置函數執行基本的數據處理操作。本文介紹云工作流常見的內置函數。
索引
云工作流的流程定義語言中,根據數據處理任務的類型,將內置函數分為以下幾類。
通用操作
數組操作
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