Todos os produtos
Search
Central de documentação

CloudFlow:Modos de integração de serviços

Última atualização: Jun 28, 2026

O CloudFlow usa estados Task para invocar serviços da Alibaba Cloud e recursos externos em um workflow. O modo de integração define como o estado Task processa a resposta do serviço: aguardar sincronamente, esperar a conclusão de um job assíncrono ou pausar até que um sistema externo envie um callback.

Há três modos de integração disponíveis:

  • RequestComplete: envia uma solicitação e aguarda a resposta (padrão).

  • WaitForSystemCallback: envia uma solicitação assíncrona e espera o sistema reportar a conclusão.

  • WaitForCustomCallback: envia uma solicitação com um token de tarefa e pausa até que um sistema externo retorne o resultado via callback.

Escolha um modo de integração

Use a tabela a seguir para identificar o modo adequado ao seu caso de uso.

Critério

RequestComplete

WaitForSystemCallback

WaitForCustomCallback

Quando usar

O serviço de destino retorna uma resposta síncrona

O serviço de destino executa um job assíncrono e reporta a conclusão automaticamente

Um sistema externo ou ação humana precisa ser concluído antes que o workflow continue

Como o estado avança

Após a chegada da resposta

Após a conclusão do job

Após a chamada de ReportTaskSucceeded ou ReportTaskFailed

Cenário típico

Invocar uma função do Function Compute sincronamente

Enviar um job em lote de longa duração

Aguardar aprovação humana ou um microsserviço externo

**Valor de invocationType**

Sync

Async

Sync ou Async

Nem todos os serviços são compatíveis com os três modos. Para verificar a lista de compatibilidade por serviço, consulte Modos de integração .

RequestComplete

RequestComplete é o modo de integração padrão. O estado Task envia uma solicitação ao serviço de destino e aguarda a resposta antes de avançar para o próximo estado. Como a chamada é síncrona, o workflow recebe o resultado assim que a invocação termina.

Defina TaskMode como RequestComplete (ou omita esse parâmetro, pois é o valor padrão):

Type: StateMachine
Name: myWorkFlow
SpecVersion: v1
StartAt: InvokeFunction
States:
  - Type: Task
    Name: an example of function invocation.
    Action: FC:InvokeFunction
    TaskMode: RequestComplete
    Parameters:
      resourceArn: acs:fc:{regionId}:{accountId}:functions/dataji/LATEST
      invocationType: Sync
      body: xxxx
    End: true

WaitForSystemCallback

Use WaitForSystemCallback para invocações assíncronas nas quais o serviço de destino reporta a conclusão automaticamente. O estado Task envia a solicitação e entra em espera; o workflow não avança até que o job termine.

Defina TaskMode como WaitForSystemCallback e invocationType como Async:

Type: StateMachine
Name: myWorkFlow
SpecVersion: v1
StartAt: InvokeFunction
States:
  - Type: Task
    Name: an example of function invocation.
    Action: FC:InvokeFunction
    TaskMode: WaitForSystemCallback
    Parameters:
      resourceArn: acs:fc:{regionId}:{accountId}:functions/dataji/LATEST
      invocationType: Async
      body: xxxx
    End: true

Para obter uma lista de serviços compatíveis com este modo, consulte Serviços da Alibaba Cloud que suportam integração normal.

Comportamento de cancelamento de tarefas

Se uma tarefa WaitForSystemCallback for encerrada, o CloudFlow pode não conseguir cancelar o job subjacente. Jobs não cancelados continuam em execução e podem gerar cobranças. Para evitar custos inesperados, cancele manualmente a tarefa de integração.

Quando o CloudFlow tenta o cancelamento automático

O CloudFlow tenta cancelar a tarefa com melhor esforço nos seguintes cenários:

  • A execução do workflow é interrompida.

  • Outra ramificação em um estado Parallel falha com um erro capturado.

  • Uma iteração de um estado Map falha com um erro não capturado.

Por exemplo, se o workflow contiver tarefas assíncronas com fluxos filhos ou funções do Function Compute, chame a operação de API StopExecution para interromper o workflow. O CloudFlow interrompe primeiro os fluxos filhos e, em seguida, as funções relacionadas às tarefas assíncronas no workflow.

Motivos pelos quais o cancelamento pode falhar

  • A função de execução não tem as permissões necessárias para chamar a operação de API correspondente.

  • O serviço de destino está temporariamente indisponível.

WaitForCustomCallback

O modo WaitForCustomCallback pausa o workflow e aguarda que um sistema externo reporte o resultado. Quando o estado Task é executado, ele gera um token de tarefa que você deve passar ao sistema externo. Após concluir o processamento, o sistema externo chama a operação de API ReportTaskSucceeded ou ReportTaskFailed com o token e o resultado. O workflow então avança para o próximo estado.

Em comparação com o polling, os callbacks reduzem a latência e eliminam carga desnecessária no servidor. Combinados com filas de mensagens, os callbacks estendem o escopo de orquestração do CloudFlow para todos os tipos de recursos de computação, não apenas para o Function Compute.

How WaitForCustomCallback works

Defina TaskMode como WaitForCustomCallback:

Type: StateMachine
Name: myWorkFlow
SpecVersion: v1
StartAt: InvokeFunction
States:
  - Type: Task
    Name: an example of function invocation.
    Action: FC:InvokeFunction
    TaskMode: WaitForCustomCallback
    Parameters:
      resourceArn: acs:fc:{regionId}:{accountId}:functions/dataji/LATEST
      invocationType: Sync
      body: xxxx
    End: true

Acesse o token de tarefa

No campo Parameters, use a expressão $Context.Current.TaskToken para acessar o token da tarefa atual. O prefixo $Context aponta para o objeto de contexto de tempo de execução.

Parameters:
  resourceArn: acs:fc:{regionId}:{accountId}:functions/dataji/LATEST
  invocationType: Async
  body:
    payload.$: $Input
    taskToken.$: $Context.Current.TaskToken

Exemplo: verificação de crédito com um microsserviço externo

Este exemplo demonstra como o CloudFlow se integra a um microsserviço externo para verificar crédito. O workflow executa as seguintes etapas:

  1. Invoca uma função do Function Compute usando WaitForCustomCallback. A função envia uma mensagem, incluindo o token de tarefa, para o Simple Message Queue (anteriormente MNS).

  2. O microsserviço externo consome a mensagem da fila e executa a verificação de crédito.

  3. O microsserviço chama ReportTaskSucceeded ou ReportTaskFailed com o token e o resultado da verificação de crédito.

  4. O CloudFlow retoma o workflow e avança para o próximo estado.

Credit check workflow

Type: StateMachine
Name: myWorkFlow
SpecVersion: v1
StartAt: InvokeFunction
States:
  - Type: Task
    Name: an example of function invocation.
    Action: FC:InvokeFunction
    TaskMode: WaitForCustomCallback
    Parameters:
      resourceArn: acs:fc:{regionId}:{accountId}:functions/dataji/LATEST
      invocationType: Async
      body:
        payload.$: $Input
        taskToken.$: $Context.Current.TaskToken
    End: true

Exemplo: integração com um serviço autogerenciado

Use o Simple Message Queue (anteriormente MNS) e callbacks de API para integrar o CloudFlow a um serviço autogerenciado. Nesse padrão, o Simple Message Queue atua como intermediário entre o CloudFlow e o serviço externo. O serviço externo consulta a fila em busca de tarefas, processa-as e retorna o resultado ao CloudFlow via callback.

Esse padrão não se limita ao Simple Message Queue; qualquer serviço intermediário de mensagens ou armazenamento funciona como canal de comunicação.

Self-managed service integration

Próximos passos