Todos los productos
Search
Centro de documentos

CloudFlow:Service integration modes

Última actualización: Sep 05, 2026

CloudFlow utiliza estados Task para invocar servicios de Alibaba Cloud y recursos externos dentro de un flujo de trabajo. El modo de integración determina cómo maneja el estado Task la respuesta del servicio: si espera de forma síncrona, si aguarda a que finalice un trabajo asíncrono o si se pausa hasta que un sistema externo envíe una devolución de llamada.

Hay tres modos de integración disponibles:

  • RequestComplete: envía una solicitud y espera la respuesta (predeterminado).

  • WaitForSystemCallback: envía una solicitud asíncrona y espera a que el sistema notifique la finalización.

  • WaitForCustomCallback: envía una solicitud con un token de tarea y se pausa hasta que un sistema externo devuelva la llamada con el resultado.

Elegir un modo de integración

Utilice la siguiente tabla para determinar qué modo se ajusta a su caso de uso.

Criterio

RequestComplete

WaitForSystemCallback

WaitForCustomCallback

Cuándo usarlo

El servicio destino devuelve una respuesta síncrona

El servicio destino ejecuta un trabajo asíncrono y notifica la finalización por sí mismo

Un sistema externo o una acción humana debe completarse antes de que continúe el flujo de trabajo

Cómo avanza el estado

Después de recibir la respuesta

Después de que finaliza el trabajo

Después de llamar a ReportTaskSucceeded o ReportTaskFailed

Escenario típico

Invocar una función de Function Compute de forma síncrona

Enviar un trabajo por lotes de larga duración

Esperar la aprobación humana o la respuesta de un microservicio externo

**Valor de invocationType**

Sync

Async

Sync o Async

No todos los servicios admiten los tres modos. Para consultar la lista de compatibilidad por servicio, consulte Integration modes .

RequestComplete

RequestComplete es el modo de integración predeterminado. El estado Task envía una solicitud al servicio destino y espera la respuesta antes de avanzar al siguiente estado. Dado que la llamada es síncrona, el flujo de trabajo recibe el resultado en cuanto finaliza la invocación.

Establezca TaskMode como RequestComplete (u omítalo, ya que es el valor predeterminado):

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

Utilice WaitForSystemCallback para invocaciones asíncronas en las que el servicio destino notifica la finalización por sí mismo. El estado Task envía la solicitud y luego espera; el flujo de trabajo no avanza hasta que termina el trabajo.

Establezca 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 obtener una lista de los servicios compatibles con este modo, consulte Alibaba Cloud services that support normal integration.

Comportamiento de cancelación de tareas

Si se termina una tarea WaitForSystemCallback, es posible que CloudFlow no pueda cancelar el trabajo subyacente. Los trabajos no cancelados continúan ejecutándose y pueden generar cargos. Para evitar costos inesperados, cancele manualmente la tarea de integración.

Cuándo intenta CloudFlow la cancelación automática

CloudFlow realiza un intento de cancelación con el máximo esfuerzo en los siguientes escenarios:

  • Se detiene la ejecución del flujo de trabajo.

  • Otra rama en un estado Parallel falla con un error capturado.

  • Una iteración de un estado Map falla con un error no capturado.

Por ejemplo, si el flujo de trabajo contiene tareas asíncronas con flujos secundarios o funciones de Function Compute, llame a la operación de API StopExecution para detener el flujo de trabajo. CloudFlow detiene primero los flujos secundarios y después las funciones relacionadas con tareas asíncronas del flujo de trabajo.

Por qué puede fallar la cancelación

  • El rol de ejecución carece de los permisos obligatorios para llamar a la operación de API correspondiente.

  • El servicio destino no está disponible temporalmente.

WaitForCustomCallback

WaitForCustomCallback pausa el flujo de trabajo y espera a que un sistema externo notifique el resultado. Cuando se ejecuta el estado Task, genera un token de tarea que usted pasa al sistema externo. Una vez que el sistema externo termina el procesamiento, llama a la operación de API ReportTaskSucceeded o ReportTaskFailed con el token y el resultado. Entonces, el flujo de trabajo avanza al siguiente estado.

En comparación con el sondeo, las devoluciones de llamada reducen la latencia y eliminan la carga innecesaria en el servidor. Combinadas con colas de mensajes, las devoluciones de llamada amplían el alcance de orquestación de CloudFlow a todo tipo de recursos de cómputo, no solo a Function Compute.

How WaitForCustomCallback works

Establezca 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

Acceder al token de tarea

Dentro del campo Parameters, utilice la expresión $Context.Current.TaskToken para acceder al token de la tarea actual. El prefijo $Context apunta al objeto de contexto de tiempo de ejecución.

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

Ejemplo: verificación de crédito con un microservicio externo

Este ejemplo demuestra cómo CloudFlow se integra con un microservicio externo para realizar una verificación de crédito. El flujo de trabajo:

  1. Invoca una función de Function Compute mediante WaitForCustomCallback. La función envía un mensaje, que incluye el token de tarea, a Simple Message Queue (anteriormente MNS).

  2. El microservicio externo extrae el mensaje de la cola y ejecuta la verificación de crédito.

  3. El microservicio llama a ReportTaskSucceeded o ReportTaskFailed con el token y el resultado de la verificación de crédito.

  4. CloudFlow reanuda el flujo de trabajo y avanza al siguiente 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

Ejemplo: integración con un servicio autogestionado

Utilice Simple Message Queue (anteriormente MNS) y devoluciones de llamada de API para integrar CloudFlow con un servicio autogestionado. En este patrón, Simple Message Queue actúa como intermediario entre CloudFlow y el servicio externo. El servicio externo sondea la cola en busca de tareas, las procesa y devuelve la llamada a CloudFlow con el resultado.

Este patrón no se limita a Simple Message Queue; cualquier servicio intermedio de mensajería o almacenamiento funciona como canal de comunicación.

Self-managed service integration

Pasos siguientes