Tüm Ürünler
Search
Belge Merkezi

CloudFlow:Task state

Son Güncelleme:Oct 06, 2026

Görev (Task) durumu, bir iş akışı içinde tek bir çalışma birimi olarak entegre bir hizmetin API işlemini çağırır. Function Compute işlevlerini, Alibaba Cloud hizmet API'lerini veya HTTP/HTTPS üzerinden üçüncü taraf hizmetleri çağırmak için Görev durumlarını kullanın.

Akış Tanımlama Dili'nde (FDL), bir Görev durumunu tanımlamak için Type değerini Task olarak ayarlayın.

Desteklenen hizmet türleri

Bir Görev durumu üç kategori hizmeti çağırabilir. Hedefi, <ServiceName>:<APIOperation> biçimini kullanarak Action alanında belirtin.

Kategori Eylem biçimi Açıklama Örnek
Function Compute FC:<APIOperation> Bir Function Compute işlevini senkron veya asenkron olarak çağırır FC:InvokeFunction
Alibaba Cloud hizmet API'si <ServiceName>:<APIOperation> Herhangi bir Alibaba Cloud OpenAPI işlemini çağırır ECS:DescribeInstances
Üçüncü taraf HTTP uç noktası HTTP:Request Harici bir hizmete HTTP/HTTPS isteği gönderir HTTP:Request

Entegrasyon modları

TaskMode alanı, CloudFlow'un hedef hizmetle nasıl etkileşime gireceğini belirler:

Mod Davranış Ne zaman kullanılır
RequestComplete Hizmetin yanıt dönmesini bekler, ardından sonraki duruma geçer. Yanıtın anında döndüğü standart senkron çağrılar için uygundur.
WaitForCustomCallback Harici bir sistem görev belirtecini içeren bir geri arama gönderene kadar iş akışını duraklatır. İnsan onayları, uzun süren harici süreçler veya iş akışının harici bir sinyali beklemesi gereken senaryolar için önerilir.
WaitForSystemCallback Entegre hizmet, tamamlanma üzerine otomatik bir geri arama gönderene kadar iş akışını duraklatır. Sistem düzeyinde tamamlanma bildirimlerini destekleyen uzun süren Alibaba Cloud işlemleri için daha uygundur.

Ayrıntılar için bkz. Hizmet entegrasyon modları.

Parametreler

Parametre Tür Zorunlu Açıklama
Name string Evet Durum adı.
Type string Evet Durum türü. Değeri Task olarak ayarlayın.
Action string Evet Çağrılacak hizmet ve işlem. Biçim: <ServiceName>:<APIOperation>.
TaskMode enum Hayır Entegrasyon modu: RequestComplete, WaitForCustomCallback veya WaitForSystemCallback.
Parameters map[string]any Hayır API çağrısı için giriş parametreleri. Değerler sabitler veya JSONPath ifadeleri olabilir.
InputConstructor map[string]any Hayır Durum girişinden görev girişini oluşturur. Bkz. Girişler ve çıkışlar.
OutputConstructor map[string]any Hayır Görev sonucundan durum çıkışını oluşturur. Bkz. Girişler ve çıkışlar.
Timeout string Hayır Saniye cinsinden zaman aşımı süresi. Geçerli değerler: 0 ile 604800 arası. 0 değeri zaman aşımı olmadığını belirtir. Zaman aşımını aşağıdaki örnekte gösterildiği gibi JSONPath ifadesi kullanarak yürütme girişinden dinamik olarak ayarlayabilirsiniz.
Retry map[string]any Hayır Hatalar için yeniden deneme ilkesi. Bkz. Hata yönetimi.
Catch map[string]any Hayır Hata yakalama ilkesi. Bkz. Hata yönetimi.
Description string Hayır Durum açıklaması.
Next string Hayır Bu durum tamamlandıktan sonra çalıştırılacak sonraki durum. End değeri true ise boş bırakın.
End bool Hayır Bu durumun mevcut kapsamın son durumu olup olmadığını belirtir.

Zaman aşımını bir JSONPath ifadesi kullanarak yürütme girişinden dinamik olarak ayarlayın:

Timeout.$: $Input.timeout

Örnekler

Function Compute işlevi çağırma

Bu örnek, biri senkron diğeri asenkron olmak üzere bir Function Compute işlevini çağıran iki Görev durumu tanımlar. İşlevi ve çağrı türünü Parameters alanında belirtin. Parametre ayrıntıları için bkz. Çağrı parametrelerini yapılandırma.

İşlevler optimize edilmiş entegrasyon modunda veya Alibaba Cloud OpenAPI aracılığıyla çağrılabilir.

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

Alibaba Cloud hizmet API'si çağırma

Action alanını hizmet ve işlem adına ayarlayarak herhangi bir Alibaba Cloud hizmet API'sini çağırın. Aşağıdaki örnek, belirli bir VPC'deki ECS örneklerini listelemek için ECS:DescribeInstances işlemini çağırır:

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

Zaman aşımı ve hata yönetimi ile HTTP uç noktası çağırma

Bu örnek bir HTTP POST isteği gönderir ve yürütme girişinden dinamik bir zaman aşımı ayarlar. Görev zaman aşımı süresi içinde tamamlanmazsa CloudFlow bir FnF.TaskTimeout hatası oluşturur. Catch kuralı bu hatayı yakalar ve iş akışını bir bildirim durumuna yönlendirir.

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

Yürütme girişi zaman aşımı değerini sağlar:

{
  "timeout": 10
}

Görev 10 saniye içinde tamamlanmazsa FnF.TaskTimeout hatası yakalanır ve iş akışı zaman aşımı bildirimi göndermek için NotifyOnTaskTimeout durumuna geçer.

Timeout workflow