A Flow Definition Language (FDL) do CloudFlow oferece funções integradas para processamento de dados nas definições de workflow. Use essas funções para manipular strings, arrays, mapas e dados JSON sem escrever código de função externa.
Para usar uma função integrada em um construtor de entrada ou saída, adicione .$ à chave do construtor. Isso instrui o CloudFlow a avaliar o valor como uma expressão. Sem o sufixo .$, o sistema trata o valor como uma string simples. Cada expressão suporta no máximo 10 chamadas de função aninhadas.
Exemplo: Uso de uma função integrada em um construtor FDL
{
"inputMappings": {
"greeting.$": "format('Hello, {}', $input.username)"
}
}
Neste exemplo, greeting.$ indica ao CloudFlow que o valor é uma expressão com a função format, e não uma string literal.
Referência de funções
As tabelas a seguir listam todas as funções integradas, organizadas por categoria.
Operações comuns
|
Função |
Finalidade |
|
Formata uma string usando placeholders |
|
|
Recupera um elemento de um array ou mapa |
|
|
Soma dois valores inteiros |
|
|
Obtém o comprimento de uma string, array ou mapa |
|
|
Gera um número inteiro aleatório dentro de um intervalo especificado |
|
|
Verifica se uma string corresponde a uma expressão regular |
|
|
Divide uma string por um delimitador |
Operações de array
|
Função |
Finalidade |
|
Verifica se um array contém um elemento específico |
|
|
Gera um array de inteiros dentro de um intervalo especificado |
|
|
Remove elementos duplicados de um array |
|
|
Converte um número variável de argumentos em um array |
Operações de mapa
|
Função |
Finalidade |
|
Extrai todas as chaves de um objeto JSON ou mapa como um array |
|
|
Extrai todos os valores de um objeto JSON ou mapa como um array |
|
|
Extrai valores de um mapa e os divide em subarrays por tamanho de passo |
Codificação e decodificação de dados
|
Função |
Finalidade |
|
Codifica uma string para Base64 |
|
|
Decodifica uma string codificada em Base64 |
Cálculo de hash e geração de UUID
|
Função |
Finalidade |
|
Gera um valor de hash usando um algoritmo especificado |
|
|
Gera um identificador universalmente único (UUID) |
Operações com dados JSON
|
Função |
Finalidade |
|
Converte um objeto JSON ou mapa em uma string JSON |
|
|
Analisa uma string JSON em um objeto JSON ou mapa |
|
|
Mescla dois objetos JSON ou mapas em um só |
Operações comuns
format
Formata uma string substituindo os placeholders {} pelos argumentos fornecidos, na ordem.
Sintaxe
format(template, arg1, arg2, ...)
Parâmetros
|
Parâmetro |
Tipo |
Obrigatório |
Descrição |
|
template |
|
Sim |
String de modelo contendo placeholders |
|
arg1, arg2, ... |
|
Sim |
Valores para substituir nos placeholders, na ordem |
Tipo de retorno: string
Exemplos
format("hello {}", "world")
// Returns: "hello world"
Uso em FDL:
{
"message.$": "format('Task {} completed at {}', $input.taskName, $input.timestamp)"
}
length
Retorna o comprimento de uma string, array ou mapa.
Para strings, retorna o número de caracteres.
Para arrays, retorna o número de elementos.
Para mapas, retorna o número de pares chave-valor.
Sintaxe
length(value)
Parâmetros
|
Parâmetro |
Tipo |
Obrigatório |
Descrição |
|
value |
|
Sim |
String, array ou mapa a medir |
Tipo de retorno: int
Exemplos
length([1, 2, 3])
// Returns: 3
length({"name": "Tom", "age": 10})
// Returns: 2
length("name")
// Returns: 4
Uso em FDL:
{
"itemCount.$": "length($input.orderItems)"
}
regexMatchString
Testa se uma string corresponde a um padrão de expressão regular. Retorna true se houver correspondência; caso contrário, retorna false.
Sintaxe
regexMatchString(pattern, value)
Parâmetros
|
Parâmetro |
Tipo |
Obrigatório |
Descrição |
|
pattern |
|
Sim |
Padrão de expressão regular |
|
value |
|
Sim |
String a testar em relação ao padrão |
Tipo de retorno: bool
Exemplos
regexMatchString("p([a-z]+)ch", "peach")
// Returns: true
regexMatchString("p([a-z]+)ch", "p123ch")
// Returns: false
Uso em FDL:
{
"isValid.$": "regexMatchString('^[a-zA-Z0-9]+$', $input.userId)"
}
split
Divide uma string em um array de substrings com base em um delimitador.
Sintaxe
split(value, delimiter)
Parâmetros
|
Parâmetro |
Tipo |
Obrigatório |
Descrição |
|
value |
|
Sim |
String a dividir |
|
delimiter |
|
Sim |
Delimitador usado para a divisão |
Tipo de retorno: []string
Exemplos
split("item1,item2,item3", ",")
// Returns: ["item1", "item2", "item3"]
Uso em FDL:
{
"tags.$": "split($input.tagString, ',')"
}
Operações de array
arrayContains
Verifica se um array contém um elemento específico. Retorna true se o elemento for encontrado; caso contrário, retorna false.
Sintaxe
arrayContains(array, element)
Parâmetros
|
Parâmetro |
Tipo |
Obrigatório |
Descrição |
|
array |
|
Sim |
Array a pesquisar |
|
element |
|
Sim |
Elemento a buscar |
Tipo de retorno: bool
Exemplos
arrayContains(["Tom", 10], 10)
// Returns: true
arrayContains(["Tom", 10], "Jack")
// Returns: false
Uso em FDL:
{
"isAllowed.$": "arrayContains($input.allowedRegions, $input.targetRegion)"
}
arrayRange
Descrição: Gera um array de inteiros dentro de um intervalo especificado.
Parâmetros:
int,int,int
# start index, end index, step
Valor de retorno:
[]int
Exemplo:
arrayRange(0,10,2)
Saída do exemplo:
[0,2,4,6,8]
arrayUnique
Remove elementos duplicados de um array e retorna o resultado sem duplicatas.
Sintaxe
arrayUnique(array)
Parâmetros
|
Parâmetro |
Tipo |
Obrigatório |
Descrição |
|
array |
|
Sim |
Array para remover duplicatas |
Tipo de retorno: []any
Exemplos
arrayUnique([1, 2, 3, 1])
// Returns: [1, 2, 3]
toArray
Converte um número variável de argumentos em um único array.
Sintaxe
toArray(arg1, arg2, ...)
Parâmetros
|
Parâmetro |
Tipo |
Obrigatório |
Descrição |
|
arg1, arg2, ... |
|
Sim |
Um ou mais valores para combinar em um array |
Tipo de retorno: []any
Exemplos
toArray(1,'strig',$Input.var)
// Returns: []any{1, 'string', $valueOfVar}
Operações de mapa
mapKeys
Extrai todas as chaves de um objeto JSON ou mapa e as retorna como um array de strings.
Sintaxe
mapKeys(map)
Parâmetros
|
Parâmetro |
Tipo |
Obrigatório |
Descrição |
|
map |
|
Sim |
Objeto JSON ou mapa de onde extrair as chaves |
Tipo de retorno: []string
Exemplos
mapKeys({"name": "Tom", "age": 10})
// Returns: ["name", "age"]
mapValues
Extrai todos os valores de um objeto JSON ou mapa e os retorna como um array.
Sintaxe
mapValues(map)
Parâmetros
|
Parâmetro |
Tipo |
Obrigatório |
Descrição |
|
map |
|
Sim |
Objeto JSON ou mapa de onde extrair os valores |
Tipo de retorno: []any
Exemplos
mapValues({"name": "Tom", "age": 10})
// Returns: ["Tom", 10]
mapValuesPartition
Extrai todos os valores de um objeto JSON ou mapa e os particiona em subarrays de um tamanho especificado.
Sintaxe
mapValuesPartition(map, stepSize)
Parâmetros
|
Parâmetro |
Tipo |
Obrigatório |
Descrição |
|
map |
|
Sim |
Objeto JSON ou mapa de onde extrair os valores |
|
stepSize |
|
Sim |
Número de elementos por subarray |
Tipo de retorno: [][]any
Exemplos
mapValuesPartition({"name": "Tom", "age": 10}, 1)
// Returns: ["Tom"],[10]
Codificação e decodificação de dados
toBase64
Codifica uma string para Base64.
Sintaxe
toBase64(value)
Parâmetros
|
Parâmetro |
Tipo |
Obrigatório |
Descrição |
|
value |
|
Sim |
String a codificar |
Tipo de retorno: string
Exemplos
toBase64("FnF")
// Returns: "Rm5G"
fromBase64
Decodifica uma string codificada em Base64 de volta ao seu valor original.
Sintaxe
fromBase64(value)ParametersParameterTypeRequiredDescriptionvaluestringYesThe Base64-encoded string to decodeReturn type: stringExamplesfromBase64("Rm5G")
// Returns: "FnF"
Cálculo de hash e geração de UUID
hash
Gera um valor de hash para a entrada fornecida usando um algoritmo especificado.
Sintaxe
id="dfc2079465bd1_19"Code" data-tag="codeblock" id="dfc2079465bd1" outputclass="language-bash">hash(input, algorithm)
Parâmetros
|
Parâmetro |
Tipo |
Obrigatório |
Descrição |
|
input |
|
Sim |
String para gerar o hash |
|
algorithm |
|
Sim |
Algoritmo de hash. Valores suportados: |
Tipo de retorno: string
Exemplos
hash("abc", "MD5")
// Returns: "900150983cd24fb0d6963f7d28e17f72"
Uso em FDL:{ "checksum.$": "hash($input.payload, 'SHA-256')" }
uuid
Gera um identificador universalmente único (UUID).
Sintaxeuuid()
**Parâmetros**
Nenhum.
**Tipo de retorno: string**
**Exemplos**
uuid()
// Returns: "159fd8c1-2ec3-4d7b-b9fd-60b9d8841000"
Uso em FDL uid="dfc2079465bd1_22"e-type="xCode" data-tag="codeblock" id="dfc2079465bd1" outputclass="language-json">{ "requestId.$": "uuid()" }
Operações com dados JSON
jsonToString
Converte um objeto JSON ou mapa em sua representação em string.
Syid="dfc2079465bd1_23"code-type="xCode" data-tag="codeblock" id="dfc2079465bd1" outputclass="language-bash">jsonToString(value)
**Parâmetros**
|
Parâmetro |
Tipo |
Obrigatório |
Descrição |
|
value |
|
Sim |
Objeto JSON ou mapa a serializar |
**Tipo de retorno: string**
**Exemplos**
toJSON({"name": "Tom", "age": 10})
// Returns: '{"name": "Tom", "age": 10}'
stringToJson
Analisa uma string JSON em um objeto JSON ou mapa.
Sintaxe
stringToJson(value)
Parâmetros
|
Parâmetro |
Tipo |
Obrigatório |
Descrição |
|
value |
|
Sim |
String JSON válida |
Tipo de retorno: map[string]any
Exemplos
stringToJson('{"name": "Tom", "age": 10}')
// Returns: {"name": "Tom", "age": 10}
Uso em FDL:
{
"parsedBody.$": "stringToJson($input.responseBody)"
}
jsonMerge
Mescla dois objetos JSON ou mapas em um só.
jsonMerge(object1, object2)
Parâmetros
|
Parâmetro |
Tipo |
Obrigatório |
Descrição |
|
object1 |
|
Sim |
Primeiro objeto JSON ou mapa |
|
object2 |
|
Sim |
Segundo objeto JSON ou mapa |
Tipo de retorno: map[string]any
Exemplos
jsonMerge({"name": "Tom", "age": 10}, {"name": "Tom", "address": "beijing"})
// Returns: {"name": "Tom", "age": 10, "address": "beijing"}
{
"mergedConfig.$": "jsonMerge($input.defaultConfig, $input.userOverrides)"
}