Todos los productos
Search
Centro de documentos

CloudFlow:Estado de tarea

Última actualización: Sep 05, 2026

Un estado Task invoca una operación de API de un servicio integrado como una unidad de trabajo individual dentro de un flujo de trabajo. Use los estados Task para ejecutar funciones de Function Compute, llamar a API de servicios de Alibaba Cloud o interactuar con servicios de terceros mediante HTTP/HTTPS.

En Flow Definition Language (FDL), establezca Type en Task para definir un estado Task.

Tipos de servicio compatibles

Un estado Task puede invocar tres categorías de servicios. Especifique el destino en el campo Action con el formato <ServiceName>:<APIOperation>.

Categoría

Formato de Action

Descripción

Ejemplo

Function Compute

FC:<APIOperation>

Ejecuta una función de Function Compute de forma síncrona o asíncrona

FC:InvokeFunction

API de servicio de Alibaba Cloud

<ServiceName>:<APIOperation>

Llama a cualquier operación de openapi de Alibaba Cloud

ECS:DescribeInstances

Endpoint HTTP de terceros

HTTP:Request

Envía una solicitud HTTP/HTTPS a un servicio externo

HTTP:Request

Modos de integración

El campo TaskMode controla cómo interactúa CloudFlow con el servicio de destino:

Modo

Comportamiento

Cuándo usarlo

RequestComplete

Espera a que el servicio devuelva una respuesta y luego continúa con el siguiente estado.

Llamadas síncronas estándar donde la respuesta es inmediata.

WaitForCustomCallback

Pausa el flujo de trabajo hasta que un sistema externo envía una devolución de llamada con el token de la tarea.

Aprobaciones manuales, procesos externos de larga duración o cualquier escenario donde el flujo de trabajo deba esperar una señal externa.

WaitForSystemCallback

Pausa el flujo de trabajo hasta que el servicio integrado envía automáticamente una devolución de llamada al finalizar.

Operaciones de Alibaba Cloud de larga duración que admiten notificaciones de finalización a nivel del sistema.

Para obtener más detalles, consulte Service integration modes.

Parámetros

Parámetro

Tipo

Obligatorio

Descripción

Name

string

Sí

El nombre del estado.

Type

string

Sí

El tipo de estado. Establézcalo en Task.

Action

string

Sí

El servicio y la operación por invocar. Formato: <ServiceName>:<APIOperation>.

TaskMode

enum

No

El modo de integración: RequestComplete, WaitForCustomCallback o WaitForSystemCallback.

Parameters

map[string]any

No

Los parámetros de entrada para la llamada a la API. Los valores pueden ser constantes o expresiones JSONPath.

InputConstructor

map[string]any

No

Construye la entrada de la tarea a partir de la entrada del estado. Consulte Inputs and outputs.

OutputConstructor

map[string]any

No

Construye la salida del estado a partir del resultado de la tarea. Consulte Inputs and outputs.

Timeout

string

No

El periodo de tiempo de espera en segundos. Valores válidos: 0 a 604800. 0 significa que no hay tiempo de espera. Configure el tiempo de espera dinámicamente desde la entrada de ejecución mediante una expresión JSONPath (consulte el ejemplo a continuación).

Retry

map[string]any

No

La directiva de reintentos para errores. Consulte Error handling.

Catch

map[string]any

No

La directiva de captura de errores. Consulte Error handling.

Description

string

No

Una descripción del estado.

Next

string

No

El siguiente estado por ejecutar después de que este estado finalice. Déjelo en blanco si End es true.

End

bool

No

Indica si este estado es el estado terminal del ámbito actual.

Configure el tiempo de espera dinámicamente desde la entrada de ejecución con una expresión JSONPath:

Timeout.$: $Input.timeout

Ejemplos

Ejecutar una función de Function Compute

Este ejemplo define dos estados Task que ejecutan una función de Function Compute: uno de forma síncrona y otro de forma asíncrona. Especifique la función y el tipo de invocación en el campo Parameters. Para obtener detalles sobre los parámetros, consulte Configure invocation parameters.

Las funciones se pueden ejecutar en modo de integración optimizada o a través de openapi de Alibaba Cloud.

Type: StateMachine
Name: MyWorkflow
SpecVersion: v1
StartAt: an example of synchronous function invocation
States:
  - Name: an example of synchronous function invocation
    Type: Task
    TaskMode: RequestComplete
    Action: FC:InvokeFunction
    Parameters:
      resourceArn: acs:fc:::functions/myFunction1/LATEST
      invocationType: Sync
      body:
        key: name
    Next: an example of asynchronous function invocation
  - Type: Task
    Name: an example of asynchronous function invocation
    Action: FC:InvokeFunction
    TaskMode: RequestComplete
    Parameters:
      invocationType: Async
      resourceArn: acs:fc:{region}:{accountID}:functions/myFunction/LATEST
      body:
        key: name
    Next: SucceededExit
  - Type: Pass
    Name: SucceededExit
    End: true

Llamar a una API de servicio de Alibaba Cloud

Llame a cualquier API de servicio de Alibaba Cloud al establecer el campo Action con el nombre del servicio y la operación. El siguiente ejemplo llama a ECS:DescribeInstances para listar instancias de ECS en una VPC específica:

Type: StateMachine
SpecVersion: v1
Name: MyWorkflow
StartAt: DescribeInstances
States:
  - Type: Task
    Name: DescribeInstances
    Action: ECS:DescribeInstances
    TaskMode: RequestComplete
    Parameters:
      RegionId: cn-hangzhou
      VpcId: vpc-bp11y195luy47h8****
      VSwitchId: vsw-bp1wb297ekw7xyh****
    End: true

Llamar a un endpoint HTTP con tiempo de espera y manejo de errores

Este ejemplo envía una solicitud HTTP POST y configura un tiempo de espera dinámico desde la entrada de ejecución. Si la tarea no finaliza dentro del periodo de tiempo de espera, CloudFlow genera un error FnF.TaskTimeout. La regla Catch captura este error y redirige el flujo de trabajo a un estado de notificación.

Type: StateMachine
Name: MyWorkflow
SpecVersion: v1
StartAt: SubmitTask
States:
  - Type: Task
    Name: SubmitTask
    Action: HTTP:Request
    TaskMode: RequestComplete
    Timeout.$: $Input.timeout
    Parameters:
      method: POST
      url: https://*****
      body:
        taskName: fly
      headers:
        Content-Type: multipart/form-data
    Catch:
      - Errors:
          - FnF.TaskTimeout
        Description: 'Error capture rule #1'
        Next: NotifyOnTaskTimeout
        OutputConstructor:
          ErrorCode: TaskTimeout
          ErrorMessage: Task timed out.
    End: true
  - Type: Task
    Name: NotifyOnTaskTimeout
    Action: HTTP:Request
    TaskMode: RequestComplete
    Parameters:
      method: POST
      url: https://******
      body:
        taskName: fly
        errorCode.$: $Input.ErrorCode
        errorMessage.$: $Input.ErrorMessage
      headers:
        Content-Type: multipart/form-data
    End: true

La entrada de ejecución proporciona el valor del tiempo de espera:

{
  "timeout": 10
}

Si la tarea no finaliza en 10 segundos, se captura el error FnF.TaskTimeout y el flujo de trabajo pasa al estado NotifyOnTaskTimeout para enviar una notificación de tiempo de espera agotado.

Timeout workflow