全部產品
Search
文件中心

CloudFlow:任務(Task)

更新時間:Jul 06, 2024

本文介紹任務狀態的基本概念及其相關使用樣本。

基本概念

任務(Task)狀態主要用於調用其他整合服務API來完成特定任務。利用任務類型狀態可以執行一個函數調用,阿里雲指定服務API調用,也可以通過HTTP/HTTPS等通用協議發起第三方服務調用。在流程定義語言中,我們通過聲明State的類型為‘Task’標記目前狀態是一個任務類型的狀態。

任務狀態包含以下屬性。

欄位

類型

是否必選

描述

樣本值

Name

string

狀態名稱。

my-state-name

Description

string

狀態原因。

describe it here

Type

string

狀態類型。

Task

Action

string

代表當前任務要執行的Action是什麼,通常是產品對應的API名稱,或者整合服務的抽象行為名稱。遵循

<產品名>:<APIName>。

FC:InvokeFunction

TaskMode

enum

任務調用模式,CloudFlow提供3種任務類型,具體類型描述細節參考服務整合模式

  • RequestComplete

  • WaitForCustomCallback

  • WaitForSystemCallback

WaitForCustomCallback

InputConstructor

map[string]any

輸入構造器。

請參見輸入和輸出

Parameters

map[string]any

請求調用參數規範;對應Action行為定義的具體調用參數規範。

可使用常量或JsonPath進行參數賦值。

參數規範請參見整合簡介

Timeout

string

調用最大逾時時間,單位為秒。

30

Retry

map[string]any

錯誤重試策略配置。

請參見錯誤處理

Catch

map[string]any

錯誤捕獲策略配置。

請參見錯誤處理

OutputConstructor

map[string]any

輸出構造器。

請參見輸出構造器

Next

string

目前狀態的下一個狀態。當End取值為true時,無需指定。

my-next-state

End

bool

是否為當前範圍的終結節點。

true

調用樣本

調用Function Compute

通過聲明Task類型的State,利用Parameters欄位,按照Function Compute調用參數規範,指定需要調用函數的資訊,具體參數規範請參見配置調用參數。函數調用既可以通過最佳化整合方式調用,也可以直接使用對應的阿里雲OpenAPI調用。

Type: StateMachine
SpecVersion: v1
Name: Function Compute調用樣本
StartAt: 同步調用函數樣本
States:
  - Name: 同步調用函數樣本
    Type: Task
    TaskMode: RequestComplete
    Action: FC:InvokeFunction
    Parameters:
      resourceArn: <myFunctionArn>
      invocationType: Sync
      body: <myEvent>
    Next: 非同步呼叫函數樣本
  - Name: 非同步呼叫函數樣本
    Type: Task
    TaskMode: RequestComplete
    Action: FC::InvokeFunction
    Parameters:
      resourceArn: acs:fc:::services/myService1.LATEST/functions/myFunction1
      invocationType: Async
      body: <myEvent>
    Retry:
      - Errors:
          - MyCustomException1
        Description: 重試策略1
        MaxAttempts: 3
        IntervalSeconds: 2
    Catch:
      - Errors:
          - MyCustomException1
        Description: 捕獲策略1
        OutputConstructor:
          ErrorCode: MyCustomException1
          ErrorMessage: MyCustomException1
        Next: ErrorCatchExit
    Next: SucceededExit
  - Type: Pass
    Name: ErrorCatchExit
    End: true
  - Type: Pass
    Name: SucceededExit
    End: tru

調用阿里雲服務API

按照阿里雲OpenAPI規範,調用相應的OpenAPI。例如 ECS:DescribeInstances。

Type: StateMachine
SpecVersion: v1
Name: 阿里雲服務API調用樣本
StartAt: DescribeInstances
States:
  - Type: Task
    Name: DescribeInstances
    Action: ECS:DescribeInstances
    TaskMode: RequestComplete
    Parameters:
      RegionId: cn-hangzhou
      VpcId: vpc-bp11y195luy47h8****
      VSwitchId: vsw-bp1wb297ekw7xyh****
    End: true

調用HTTP/HTTPS

Type: StateMachine
SpecVersion: v1
Name: HTTP協議調用樣本
StartAt: HTTP調用樣本
States:
  - Type: Task
    Name: HTTP調用樣本
    Action: HTTP:Request
    TaskMode: RequestComplete
    Description: 調用HTTP樣本
    Parameters:
      url: https://www.example.com
      method: Get