This topic describes task states and provides related examples.
Overview
Task states are used to call API operations of other integrated services to complete a job. You can use task states to invoke functions, API operations of Alibaba Cloud services, or third-party services over a common protocol such as HTTP or HTTPS. In the flow definition language (FDL), you can mark the current state as a task state by using the Task label.
The following table describes the attributes of task states.
Attribute | Type | Required | Description | Example |
Name | string | Yes | The name of the state. | my-state-name |
Description | string | No | The description of the state. | describe it here |
Type | string | Yes | The type of the state. | Task |
Action | string | Yes | The action that is to be executed in the current task. The action is usually the name of an API operation of the service, or the name of an abstract action of the integrated service. The format of the value: <Service name>:<API operation name>. | FC:InvokeFunction |
TaskMode | enum | No | The mode in which the task is invoked. CloudFlow provides three modes. For more information, see Service integration modes.
| WaitForCustomCallback |
InputConstructor | map[string]any | No | The input constructor. | See InputConstructor. |
Parameters | map[string]any | No | The specifications for the parameters that are requested to invoke. The specifications correspond to the action. The values of the parameters can follow the JSON or JSONPath format. | For more information about the specifications, see Overview. |
Timeout | string | No | The timeout period of the invocation. Unit: seconds. | 30 |
OnErrors | []OnError | No | The configurations of the error handling rule. | See Error handling. |
OutputConstructor | map[string]any | No | The output constructor. | See OutputConstructor. |
Next | string | No | The next state that is executed after the current state is complete. If the End attribute is true, you do not need to specify this attribute. | my-next-state |
End | bool | No | Specifies whether to end the current scope. | true |
Sample requests
Invoke Function Compute
You can declare that the type of a state
is Task
and specify the information about the function to be invoked in the Parameters
section based on the specifications for invoked Function Compute parameters. For more information about the parameter specifications, see Step 2: Configure invocation parameters. Function invocations can be performed in optimized integration mode or in Alibaba Cloud OpenAPI.
Type: StateMachine
SpecVersion: v1
Name: an example of Function Compute invocation
StartAt: an example of synchronous function invocation
States:
- Name: an example of synchronous function invocation
Type: Task
TaskMode: RequestComplete
Action: FC:InvokeFunction
Parameters:
resourceArn: <myFunctionArn>
invocationType: Sync
body: <myEvent>
Next: an example of asynchronous function invocation
- Name: an example of asynchronous function invocation
Type: Task
TaskMode: RequestComplete
Action: FC::InvokeFunction
Parameters:
resourceArn: acs:fc:::services/myService1.LATEST/functions/myFunction1
invocationType: Async
body: <myEvent>
End: true
Call an API operation of an Alibaba Cloud service
Call the corresponding API operations based on the Alibaba Cloud OpenAPI specifications. Sample format of calling an API operation: ECS:DescribeInstances.
Type: StateMachine
SpecVersion: v1
Name: an example of calling an API operation of an Alibaba Cloud service
StartAt: DescribeInstances
States:
- Type: Task
Name: DescribeInstances
Action: ECS:DescribeInstances
TaskMode: RequestComplete
Parameters:
RegionId: cn-hangzhou
VpcId: vpc-bp11y195luy47h8****
VSwitchId: vsw-bp1wb297ekw7xyh****
End: true
Invoke a third-party service over the HTTP or HTTPS protocol
Type: StateMachine
SpecVersion: v1
Name: an example of invoking a third-party service over the HTTP protocol
StartAt: an example of invoking a third-party service over the HTTP protocol
States:
- Type: Task
Name: an example of invoking a third-party service over the HTTP protocol
Action: HTTP:Request
TaskMode: RequestComplete
Description: an example of invoking a third-party service over the HTTP protocol
Parameters:
url: https://www.example.com
method: Get