Todos os produtos
Search
Central de documentação

CloudFlow:Entradas e saídas

Última atualização: Jun 28, 2026

CloudFlow transfere dados entre estados em um workflow. Cada estado recebe a entrada do estado anterior e retorna uma saída para o próximo estado. Este tópico descreve as entradas e saídas nos workflows.

Informações básicas

Os dados em um workflow do CloudFlow fluem de um estado para outro, semelhantemente às chamadas de função na programação funcional. Cada estado recebe uma entrada e retorna uma saída, armazenada no contexto. Esse fluxo de dados entre estados permite automatizar processos em aplicações empresariais com lógica complexa.

Nota

As entradas e saídas devem ser objetos JSON. O tamanho da entrada e da saída de um estado não pode exceder 64 KiB. Se o tamanho ultrapassar esse limite, a execução do flow falhará.

Entradas e saídas de execuções

Entradas de execuções

Forneça informações ou dados para iniciar uma execução. Essas informações ou dados podem servir como entrada para um ou mais estados. Durante a orquestração do workflow, acesse a entrada de uma execução pela expressão de sistema $Context.Execution.Input.

Por exemplo, a lógica de um sistema de matrícula online consiste em três processos: coleta de informações do aluno, verificação das informações e efetivação da matrícula. Como as informações básicas do aluno são necessárias em cada processo, passe-as como entrada da execução e configure os três estados correspondentes para acessar essa entrada usando a expressão de sistema. A figura a seguir mostra um exemplo de entrada de execução.

image

Saídas de execuções

A saída de uma execução corresponde ao resultado de uma execução bem-sucedida. Não é possível acessar a saída de uma execução usando uma variável de sistema durante a orquestração do workflow.

Entradas e saídas de estados

Entradas de um estado

Durante a orquestração do workflow, use a expressão de sistema $Context.Current.Input ou sua forma abreviada $Input para acessar a entrada do estado atual.

Saídas de estados

Na orquestração do workflow, use a expressão de sistema $Context.Current.Output ou sua forma abreviada $Output para acessar a saída do estado atual. Observe que a forma abreviada $Output só pode ser usada nos escopos dos construtores de saída.

Construtores

Expressões de sistema utilizáveis em construtores

Use as seguintes expressões de sistema em construtores:

  • $Context: O ciclo de vida de $Context coincide com todo o período de execução do workflow. Para obter mais informações sobre $Context, consulte Passagem de dados.

  • $Input: O ciclo de vida de $Input começa quando o workflow entra no estado e termina quando sai dele. $Input é a forma abreviada de $Context.Current.Input.

  • $Output: O ciclo de vida de $Output inicia-se na entrada do estado de resposta da chamada de Task e encerra-se na saída desse estado. $Output é a forma abreviada de $Context.Current.Output.

  • $Global: O ciclo de vida de $Global abrange todo o período de execução do workflow. Para mais detalhes sobre $Global, consulte Variáveis globais.

Importante
  • Uma chave terminada em .$ em um construtor de entrada, de saída ou de parâmetro deve receber um valor em formato de expressão. Caso contrário, ocorrerá um erro.

  • Ao usar funções integradas ou variáveis de sistema iniciadas com $, adicione .$ ao final das chaves das variáveis para garantir que não sejam interpretadas como strings.

  • Um construtor de entrada ou saída suporta até 10 níveis de aninhamento de funções integradas.

A figura a seguir ilustra os ciclos de vida das expressões de sistema $Input, $Output, $Context e $Global, além dos processos de atribuição em diferentes estados.

image
  • $Input representa a entrada da execução.

  • Na figura anterior, $Input=InputConstructor($Context,$Global) indica que, dentro desse escopo, InputConstructor pode referenciar $Context e $Global para extrair informações. O resultado da construção é atribuído a $Input.

  • $Output corresponde ao resultado da chamada de Task. Se a chamada for iniciada no modo de callback assíncrono, o valor de $Output será o resultado desse callback.

  • $Output=OutputConstructor($Context,$Global) significa que, nesse escopo, OutputConstructor pode referenciar $Context e $Global para extrair informações. O resultado da construção é atribuído a $output.

  • $Global refere-se às variáveis globais, acessíveis durante todo o período de execução do workflow.

  • $Global=Merge($Global,GlobalConstructor($Context,$Global)) indica que as variáveis construídas pelo construtor global são mescladas com as variáveis existentes em $Global. Em seguida, todas as variáveis são armazenadas em $Global para atualizar as variáveis globais compartilhadas.

  • $Context permanece válido durante toda a execução.

InputConstructor

InputConstructor constrói a entrada de um workflow. As expressões do InputConstructor diferem das expressões condicionais dos estados Choice state. Enquanto as expressões condicionais retornam apenas valores booleanos, as expressões do InputConstructor podem retornar qualquer valor. Use as seguintes variáveis de sistema no InputConstructor do estado:

  • $Context

  • $Input

  • $Global

Importante

Quando existem múltiplas configurações de entrada, a prioridade segue esta ordem decrescente: InputConstructor, ItemsPath e ItemConstructor.

A definição de máquina de estados a seguir apresenta um exemplo de uso do InputConstructor.

Type: StateMachine
Name: test3-tx
SpecVersion: v1
StartAt: InvokeFunction1
States:
  - Type: Task
    Name: InvokeFunction
    Action: FC:InvokeFunction
    TaskMode: RequestComplete
    InputConstructor:
      FieldA.$: $Context.Execution.Input
      FieldB: World
      FieldC.$: length($Context.Execution.Input)
      FieldD.$: $Global.InvokeFunctionPayload
    Parameters:
      resourceArn: >-
        acs:fc:cn-hangzhou:123456:functions/myFunction1/LATEST
      invocationType: Sync
      body.$: $Input
    End: true
  - Type: Task
    Name: InvokeFunction1
    Action: FC:InvokeFunction
    TaskMode: RequestComplete
    Parameters:
      invocationType: Sync
      resourceArn: acs:fc:cn-hangzhou:123456:functions/myFunction1/LATEST
    GlobalConstructor:
      InvokeFunctionPayload.$: $Output.Body
    Next: InvokeFunction
  • No exemplo acima, a estrutura de dados de InputConstructor é Map[String]Any.

  • FieldA.$: $Context.Execution.Input indica que a chave FieldA obtém dinamicamente o valor de $Context.Execution.Input, em vez de ser tratada como uma string.

  • FieldB: World significa que a string estática 'World' é atribuída a FieldB. Nenhum valor é obtido dinamicamente, pois a chave FieldB não termina com o marcador .$.

  • FieldC.$: length($Context.Execution.Input) demonstra o uso da função integrada length para obter o comprimento do valor em $Context.Execution.Input e atribuir esse comprimento a FieldC. Para informações sobre as funções integradas disponíveis nos construtores, consulte Funções integradas.

  • A expressão FieldD.$: $Global. InvokeFunctionPayload extrai o valor da chave InvokeFunctionPayload no espaço de armazenamento global e passa esse valor como campo FieldD para o estado Task.

OutputConstructor

Em comparação ao InputConstructor, o OutputConstructor é executado em um momento diferente e oferece suporte a mais variáveis nas expressões de contexto. Por exemplo, enquanto um construtor de entrada aceita apenas $Context ou $Input, o construtor de saída permite usar $Output para representar a saída, já que a chamada de Task já gerou esse resultado. Use as seguintes variáveis de sistema no OutputConstructor do estado:

  • $Context

  • $Input

  • $Output

  • $Global

A definição de máquina de estados abaixo fornece um exemplo de uso do OutputConstructor.

Type: StateMachine
Name: test3-tx
SpecVersion: v1
StartAt: InvokeFunction1
States:
  - Type: Task
    Name: InvokeFunction1
    Action: FC:InvokeFunction
    TaskMode: RequestComplete
    Parameters:
      invocationType: Sync
      resourceArn: acs:fc:cn-hangzhou:123456:functions/myFunction1/LATEST
    GlobalConstructor:
      InvokeFunctionPayload.$: $Output.Body
    Next: InvokeFunction
  - Type: Task
    Name: InvokeFunction
    Action: FC:InvokeFunction
    TaskMode: RequestComplete
    Parameters:
      resourceArn: >-
        acs:fc:cn-hangzhou:123456:functions/myFunction1/LATEST
      invocationType: Sync
      body.$: $Input
    OutputConstructor:
      returnID.$: uuid()
      functionResult.$: $Output
      functionResultStr.$: jsonToString($Output)
      executionInput.$: $Context.Execution.Input
      lastOutput.$: $Input
      demo.$: $Global
    End: true
  • No exemplo anterior, a estrutura de dados de OutputConstructor é map[string]any.

  • functionResult.$ obtém dinamicamente a saída do estado, executionInput.$ recupera a entrada da execução e lastOutput.$ obtém a entrada do estado.

  • returnID.$ recupera o ID exclusivo, enquanto functionResultStr.$ obtém uma string criada a partir da saída do estado.