すべてのプロダクト
Search
ドキュメントセンター

CloudFlow:サービス統合の概要

最終更新日:Jun 17, 2026

Serverless Workflow は複数の Alibaba Cloud サービスを統合し、タスクステップでそれらを実行ユニットとして使用できます。サービス統合は Flow Definition Language (FDL) で定義されます。[Task] ステップでは、resourceArn でターゲットサービスを、pattern で統合モードを指定します。

サポートされている Alibaba Cloud サービスの一覧については、「サポートされている Alibaba Cloud サービス」をご参照ください。

統合モード

Serverless Workflow は 3 つの統合モードをサポートしています。

  • リクエスト/レスポンスモードでは、Serverless Workflow がサードパーティ サービスを呼び出し、HTTP レスポンスを受信した後に次のステップに進みます。これはデフォルトの統合モードです。

    FDL ステップでは、resourceArn を使用してターゲットサービスを指定し、pattern: requestResponse を使用して統合モードを指定します。このパラメーターはオプションです。省略した場合、Serverless Workflow はデフォルトのリクエスト/レスポンスモードを使用し、API コールが返された直後に次のステップに進みます。次の例では、Serverless Workflow が統合サービスである子フローを使用します。

    version: v1
    type: flow
    steps:
      - type: task
        name: testSubflow
        resourceArn: acs:fnf:::flow/flowABC # 子フローを記述します。
        pattern: requestResponse # 統合モードを記述します: デフォルト (リクエスト/レスポンス) モード。
      - type: pass
        name: dummy       

    この例では、testSubflow ステップが flowABC フローをトリガーすると、実行は、flowABC フローがまだ実行中である可能性がある状態で、次のステップである dummy に進みます。

  • 同期モード: Serverless Workflow は、タスクを開始するための非同期 API を提供するサービスと連携します。タスクを送信すると、Serverless Workflow は次のステップに進む前にタスクが完了するまで待機します。

    同期モードをサポートするサービスは、通常、タスクを開始するための非同期 API を公開します。Serverless Workflow はタスクを送信し、それが完了するまで待機してから次のステップに進みます。

    FDL ステップでは、resourceArn を使用して対象のサービスを指定し、pattern: sync を使用して統合モードを指定します。次の例では、Serverless Workflow が統合サービスである子フローを使用します。

    version: v1
    type: flow
    steps:
      - type: task
        name: testTask
        resourceArn: acs:fnf:::flow/flowABC # 子フローを記述します。
        pattern: sync # 統合モードを記述します: 同期。
      - type: pass
        name: dummy          

    この例では、testTask ステップが実行されると、flowABC フローがトリガーされます。ワークフローは、flowABC フローが完了した後にのみ、次のステップである dummy に進みます。

  • コールバック待機モード: Serverless Workflow はサービスを呼び出し、タスクトークンを渡します。フローは、そのタスクトークンを含むコールバック指示を受信するまで一時停止します。

    FDL ステップでは、resourceArn で対象サービスを、pattern: waitForCallback で統合モードを指定します。次の例では、Serverless Workflow が統合サービスである子フローを使用します。

    version: v1
    type: flow
    steps:
      - type: task
        name: testSubflow
        resourceArn: acs:fnf:::flow/flowABC # 子フローを記述します。
        pattern: waitForCallback # 統合モードを記述します: コールバック待機。
      - type: pass
        name: dummy            

    この例では、testSubflow ステップが実行されると、flowABC フローがトリガーされます。フローは、ReportTaskSucceed API または ReportTaskFailed API からコールバックを受信するまで一時停止します。コールバックが処理されると、フローは dummy ステップに進みます。一方、flowABC フローは、すでに完了しているか、まだ実行中である可能性があります。

コンテキストオブジェクト

コンテキストオブジェクトは、フロー実行インスタンス内で利用可能な内部 JSON オブジェクトです。フローとそのステップに関する情報が含まれています。inputMappings を使用して、コンテキストデータを特定の変数にマッピングします。以下の例は、コンテキストオブジェクトの構造を示しています。

"context": {
    "flow": {
      // 現在のフローの一意の ID と名前。どちらも文字列です。
        "id": "val1",
        "name": "val2"
    },
    "execution": {
      // 現在の実行の名前。
        "name": "val3"
    },
    "step": {
      // 現在のステップの名前。
        "name": "val4",
      // 現在のステップのイベント ID。
        "eventId": "val5",
      // 現在のループ反復番号。これは foreach ステップで利用可能です。
        "IterationIndex": "val6"
    },
    "task": {
      // このステップの識別子。文字列で、コールバック待機モードで利用可能です。
        "token": "val7"
    }
}       

たとえば、Serverless Workflow サービスを統合する場合、子フローでコールバックを実行するために、呼び出し元のステップの親フロー情報と taskToken を取得する必要がある場合があります。 次の例では、これらのフィールドを取得する方法を示します。

    ...
        inputMappings:
      - target: current_flow_name 
        source: $context.flow.name 
      - target: current_execution_name 
        source: $context.execution.name 
      - target: current_step_task_token 
        source: $context.task.token            

統合クラウドサービス

ソリューション

requestResponse

sync

waitForCallback

Function Compute (FC)

サポート

非サポート

非サポート

Simple Message Queue (formerly MNS) キュートリガー

サポート

非サポート

サポート

Simple Message Queue (formerly MNS) トピックトリガー

サポート

非サポート

サポート

サーバーレスワークフロー (SWF)

サポート

サポート

サポート