CloudFlow's Flow Definition Language (FDL) menyediakan fungsi bawaan untuk pemrosesan data dalam definisi alur kerja. Fungsi-fungsi ini memungkinkan Anda memanipulasi string, array, map, dan data JSON tanpa perlu menulis kode fungsi eksternal.
Untuk menggunakan fungsi bawaan dalam konstruktor input atau output, tambahkan .$ ke kunci konstruktor. Hal ini memberi tahu CloudFlow untuk mengevaluasi nilai tersebut sebagai ekspresi. Tanpa akhiran .$, nilai tersebut diperlakukan sebagai string biasa. Maksimal 10 pemanggilan fungsi bersarang didukung per ekspresi.
Contoh: Menggunakan fungsi bawaan dalam konstruktor FDL
{
"inputMappings": {
"greeting.$": "format('Hello, {}', $input.username)"
}
}Pada contoh ini, greeting.$ memberi tahu CloudFlow bahwa nilai tersebut merupakan ekspresi yang berisi fungsi format, bukan string literal.
Referensi fungsi
Tabel berikut mencantumkan semua fungsi bawaan, dikelompokkan berdasarkan kategori.
Operasi umum
| Fungsi | Tujuan |
|---|---|
format | Memformat string menggunakan placeholder {} |
length | Mendapatkan panjang string, array, atau map |
regexMatchString | Mencocokkan string terhadap ekspresi reguler |
split | Memisahkan string berdasarkan delimiter |
Operasi array
| Fungsi | Tujuan |
|---|---|
arrayContains | Memeriksa apakah array berisi elemen tertentu |
arrayUnique | Menghapus elemen duplikat dari array |
toArray | Mengonversi sejumlah argumen variabel menjadi array |
Operasi map
| Fungsi | Tujuan |
|---|---|
mapKeys | Mengekstrak semua kunci dari objek JSON atau map sebagai array |
mapValues | Mengekstrak semua nilai dari objek JSON atau map sebagai array |
mapValuesPartition | Mengekstrak nilai dari map dan membaginya menjadi sub-array berdasarkan ukuran langkah |
Pengkodean dan penguraian data
| Fungsi | Tujuan |
|---|---|
toBase64 | Mengencode string ke Base64 |
fromBase64 | Mengurai string yang diencode Base64 |
Perhitungan hash dan pembuatan UUID
| Fungsi | Tujuan |
|---|---|
hash | Menghasilkan nilai hash menggunakan algoritma tertentu |
uuid | Menghasilkan identifier unik universal (UUID) |
Operasi data JSON
| Fungsi | Tujuan |
|---|---|
jsonToString | Mengonversi objek JSON atau map menjadi string JSON |
stringToJson | Mengurai string JSON menjadi objek JSON atau map |
jsonMerge | Menggabungkan dua objek JSON atau map menjadi satu |
Operasi umum
format
Memformat string dengan mengganti placeholder {} menggunakan argumen yang diberikan, secara berurutan.
Sintaks
format(template, arg1, arg2, ...)Parameter
| Parameter | Tipe | Wajib | Deskripsi |
|---|---|---|---|
| template | string | Ya | String templat yang berisi placeholder {} |
| arg1, arg2, ... | any | Ya | Nilai yang akan menggantikan placeholder, secara berurutan |
Tipe kembalian: string
Contoh
format("hello {}", "world")
// Mengembalikan: "hello world"Penggunaan FDL:
{
"message.$": "format('Task {} completed at {}', $input.taskName, $input.timestamp)"
}length
Mengembalikan panjang string, array, atau map.
Untuk string, mengembalikan jumlah karakter.
Untuk array, mengembalikan jumlah elemen.
Untuk map, mengembalikan jumlah pasangan kunci-nilai.
Sintaks
length(value)Parameter
| Parameter | Tipe | Wajib | Deskripsi |
|---|---|---|---|
| value | string, []any, atau map[string]any | Ya | String, array, atau map yang akan diukur |
Tipe kembalian: int
Contoh
length([1, 2, 3])
// Mengembalikan: 3
length({"name": "Tom", "age": 10})
// Mengembalikan: 2
length("name")
// Mengembalikan: 4Penggunaan FDL:
{
"itemCount.$": "length($input.orderItems)"
}regexMatchString
Menguji apakah string cocok dengan pola ekspresi reguler. Mengembalikan true jika pola cocok, false jika tidak.
Sintaks
regexMatchString(pattern, value)Parameter
| Parameter | Tipe | Wajib | Deskripsi |
|---|---|---|---|
| pattern | string | Ya | Pola ekspresi reguler |
| value | string | Ya | String yang akan diuji terhadap pola |
Tipe kembalian: bool
Contoh
regexMatchString("p([a-z]+)ch", "peach")
// Mengembalikan: true
regexMatchString("p([a-z]+)ch", "p123ch")
// Mengembalikan: falsePenggunaan FDL:
{
"isValid.$": "regexMatchString('^[a-zA-Z0-9]+$', $input.userId)"
}split
Memisahkan string menjadi array substring berdasarkan delimiter.
Sintaks
split(value, delimiter)Parameter
| Parameter | Tipe | Wajib | Deskripsi |
|---|---|---|---|
| value | string | Ya | String yang akan dipisah |
| delimiter | string | Ya | Delimiter yang digunakan untuk memisah |
Tipe kembalian: []string
Contoh
split("item1,item2,item3", ",")
// Mengembalikan: ["item1", "item2", "item3"]Penggunaan FDL:
{
"tags.$": "split($input.tagString, ',')"
}Operasi array
arrayContains
Memeriksa apakah array berisi elemen tertentu. Mengembalikan true jika elemen ditemukan, false jika tidak.
Sintaks
arrayContains(array, element)Parameter
| Parameter | Tipe | Wajib | Deskripsi |
|---|---|---|---|
| array | []any | Ya | Array yang akan dicari |
| element | any | Ya | Elemen yang akan dicari |
Tipe kembalian: bool
Contoh
arrayContains(["Tom", 10], 10)
// Mengembalikan: true
arrayContains(["Tom", 10], "Jack")
// Mengembalikan: falsePenggunaan FDL:
{
"isAllowed.$": "arrayContains($input.allowedRegions, $input.targetRegion)"
}arrayUnique
Menghapus elemen duplikat dari array dan mengembalikan hasil yang telah dideduplikasi.
Sintaks
arrayUnique(array)Parameter
| Parameter | Tipe | Wajib | Deskripsi |
|---|---|---|---|
| array | []any | Ya | Array yang akan dideduplikasi |
Tipe kembalian: []any
Contoh
arrayUnique([1, 2, 3, 1])
// Mengembalikan: [1, 2, 3]toArray
Mengonversi sejumlah argumen variabel menjadi satu array.
Sintaks
toArray(arg1, arg2, ...)Parameter
| Parameter | Tipe | Wajib | Deskripsi |
|---|---|---|---|
| arg1, arg2, ... | any | Ya | Satu atau lebih nilai yang akan digabung menjadi array |
Tipe kembalian: []any
Contoh
toArray(1,'strig',$Input.var)
// Mengembalikan: []any{1, 'string', $valueOfVar}Operasi map
mapKeys
Mengekstrak semua kunci dari objek JSON atau map dan mengembalikannya sebagai array string.
Sintaks
mapKeys(map)Parameter
| Parameter | Tipe | Wajib | Deskripsi |
|---|---|---|---|
| map | map[string]any | Ya | Objek JSON atau map tempat kunci diekstrak |
Tipe kembalian: []string
Contoh
mapKeys({"name": "Tom", "age": 10})
// Mengembalikan: ["name", "age"]mapValues
Mengekstrak semua nilai dari objek JSON atau map dan mengembalikannya sebagai array.
Sintaks
mapValues(map)Parameter
| Parameter | Tipe | Wajib | Deskripsi |
|---|---|---|---|
| map | map[string]any | Ya | Objek JSON atau map tempat nilai diekstrak |
Tipe kembalian: []any
Contoh
mapValues({"name": "Tom", "age": 10})
// Mengembalikan: ["Tom", 10]mapValuesPartition
Mengekstrak semua nilai dari objek JSON atau map dan mempartisinya menjadi sub-array dengan ukuran tertentu.
Sintaks
mapValuesPartition(map, stepSize)Parameter
| Parameter | Tipe | Wajib | Deskripsi |
|---|---|---|---|
| map | map[string]any | Ya | Objek JSON atau map tempat nilai diekstrak |
| stepSize | int | Ya | Jumlah elemen per sub-array |
Tipe kembalian: [][]any
Contoh
mapValuesPartition({"name": "Tom", "age": 10}, 1)
// Mengembalikan: ["Tom"],[10]Pengkodean dan penguraian data
toBase64
Mengencode string ke Base64.
Sintaks
toBase64(value)Parameter
| Parameter | Tipe | Wajib | Deskripsi |
|---|---|---|---|
| value | string | Ya | String yang akan diencode |
Tipe kembalian: string
Contoh
toBase64("FnF")
// Mengembalikan: "Rm5G"fromBase64
Mengurai string yang diencode Base64 kembali ke nilai aslinya.
Sintaks
fromBase64(value)Perhitungan hash dan pembuatan UUID
hash
Menghasilkan nilai hash untuk input yang diberikan menggunakan algoritma tertentu.
Sintaks
hash(input, algorithm)Parameter
| Parameter | Tipe | Wajib | Deskripsi |
|---|---|---|---|
| input | string | Ya | String yang akan di-hash |
| algorithm | string | Ya | Algoritma hash. Nilai yang didukung: MD5, SHA-1, SHA-256, SHA-512 |
Tipe kembalian: string
Contoh
hash("abc", "MD5")
// Mengembalikan: "900150983cd24fb0d6963f7d28e17f72"Penggunaan FDL:
{
"checksum.$": "hash($input.payload, 'SHA-256')"
}uuid
Menghasilkan pengidentifikasi unik universal (UUID).
Syntax uuid()
Parameter
Tidak ada.
Tipe kembalian: string
Contoh
uuid()
// Mengembalikan: "159fd8c1-2ec3-4d7b-b9fd-60b9d8841000"FDL uid="dfc2079465bd1_22"e-type="xCode" data-tag="codeblock" id="dfc2079465bd1" outputclass="language-json">>>{ "requestId.$": "uuid()" }
Operasi data JSON
jsonToString
Mengonversi objek JSON atau map menjadi representasi string-nya.
Syid="dfc2079465bd1_23"code-type="xCode" data-tag="codeblock" id="dfc2079465bd1" outputclass="language-bash">jsonToString(value)
Parameter
| Parameter | Tipe | Wajib | Deskripsi |
|---|---|---|---|
| value | map[string]any | Ya | Objek JSON atau map yang akan diserialisasi |
Tipe kembalian: string
Contoh
toJSON({"name": "Tom", "age": 10})
// Mengembalikan: '{"name": "Tom", "age": 10}'stringToJson
Mengurai string JSON menjadi objek JSON atau map.
Sintaks
stringToJson(value)Parameter
| Parameter | Tipe | Wajib | Deskripsi |
|---|---|---|---|
| value | string | Ya | String JSON yang valid. |
Tipe kembalian: map[string]any
Contoh
stringToJson('{"name": "Tom", "age": 10}')
// Mengembalikan: {"name": "Tom", "age": 10}Penggunaan FDL:
{
"parsedBody.$": "stringToJson($input.responseBody)"
}jsonMerge
Menggabungkan dua objek JSON atau map menjadi satu.
jsonMerge(object1, object2)Parameter
| Parameter | Tipe | Wajib | Deskripsi |
|---|---|---|---|
| object1 | map[string]any | Ya | Objek JSON atau map pertama. |
| object2 | map[string]any | Ya | Objek JSON atau map kedua. |
Tipe kembalian: map[string]any
Contoh
jsonMerge({"name": "Tom", "age": 10}, {"name": "Tom", "address": "beijing"})
// Mengembalikan: {"name": "Tom", "age": 10, "address": "beijing"}{
"mergedConfig.$": "jsonMerge($input.defaultConfig, $input.userOverrides)"
}