跳轉到

查看工作流程執行

「查詢工作流程執行」任務會用一個執行識別碼 (Execution ARN) 去查詢某次工作流程執行的狀態與結果,而不是啟動新的執行。最常見的用法是:先用 Start Workflow Execution 非同步觸發子工作流程拿到 ARN,之後再用這個任務去檢查它跑完了沒、結果是什麼。若要同步啟動並直接等結果,請用 Start Sync Workflow Execution

這頁能幫你做什麼

  • 檢查非同步啟動的子工作流程目前的狀態(執行中、成功、失敗、逾時)。
  • 取回已完成執行的輸出 (output),供後續步驟使用。
  • 搭配 Wait 狀態或重試邏輯,做出「輪詢直到完成」的協調模式。
  • 依執行狀態建立條件分支(例如成功才繼續、失敗就走補救流程)。

開始前

前置需求

  • 你需要一個有效的執行 ARN。通常來自先前的 Start Workflow Execution(它會回傳 executionArn),把這個值存進工作流程狀態後再傳給本任務。

執行 ARN 是什麼?

ARN 是 AWS 給「某一次工作流程執行」的一串唯一識別字串,可以想成這次執行的收據編號。本任務不會自己生出 ARN,而是拿著別人給的 ARN 去查那一次執行的狀態與結果。新手通常不必手打 ARN,而是把上一步「執行工作流程」回傳的 executionArn 接過來用。在 UI 詳細頁看到這串 ARN 時,旁邊的 複製與 開啟連結按鈕用法(含「開啟連結會導向 AWS 主控台」的注意事項)見 ARN 欄位的「複製」與「開啟連結」

最小可跟做範例:先觸發、再查詢

把兩個任務串起來,就能「先啟動子工作流程,再回頭查它跑完沒」:

  1. 第一步放一個 執行工作流程 任務,挑好要呼叫的子工作流程。它執行後會回傳 executionArn
  2. 第一步的「輸入與輸出」設定讓回傳結果存進狀態(例如存到 $.child_execution_arn)。
  3. 第二步放本任務(查看工作流程執行),在「執行 ARN」填 $.child_execution_arn,把上一步拿到的 ARN 傳進來查詢。
  4. 試跑後即可在輸出看到該次執行的 status(執行中/成功/失敗)與 output

操作步驟

  1. 在工作流程編輯器中新增一個「查看工作流程執行」(Describe Workflow Execution) 節點(在「新增狀態」面板的調色盤中標籤為中文「查看工作流程執行」,請以此搜尋;通用步驟見 Action 使用指南)。

    查看工作流程執行任務設定面板

  2. 點選節點,右側開啟設定表單。

  3. 在「名稱」填入這個步驟的識別名稱。
  4. 在「執行 ARN」填入要查詢的執行識別碼,通常用 JSONPath 從狀態帶入,例如 $.child_execution_arn
  5. 視需要展開「執行設定」調整外部記憶體、串流與錯誤處理行為。

    展開「執行設定」後的共用欄位

  6. 選擇「下一個狀態」,存檔後可用表單上方的測試按鈕()試跑並檢視回傳的 statusoutput

完整欄位說明

下表為這個任務在「設定」分頁的特有欄位。共用欄位(下一個狀態、附註、輸入與輸出分頁、錯誤處理分頁)的完整說明集中在 Action 通用設定

欄位 必填 預設 說明
名稱 這個步驟在工作流程裡的識別名稱,須在同一工作流程內唯一。
執行 ARN 要查詢的工作流程執行識別碼。可直接貼上 ARN,或用 JSONPath($ 開頭)從目前狀態動態帶入,例如 $.child_execution_arn。此值通常來自先前 Start Workflow Execution 的回傳。

Note

這個任務只有「執行 ARN」一個特有輸入欄位,沒有「執行來源」「工作流程」「輸入」等啟動類欄位,因為它是用既有的 ARN 查詢、而非啟動新執行。

執行設定(摺疊區塊)

在「設定」分頁底部展開「執行設定」可看到下列欄位,控制這個步驟實際執行時的行為。

欄位 必填 預設 說明
上傳輸出至外部記憶體 關閉 開關。查回來的輸出資料量很大時開啟,把輸出改存到外部記憶體。開啟後會多出選擇器設定,指定要把哪部分輸出存到外部記憶體。
在任務開始階段開啟即時輸出串流 關閉 開關。開啟後,任務開始時把任務定義以串流方式即時送到執行頁面顯示。
在任務結束階段開啟即時輸出串流 關閉 開關。開啟後,任務結束時把結果以串流方式即時送到執行頁面顯示。
錯誤時中止 開啟 開關。開啟(預設)代表此步驟出錯時整個工作流程中止;關閉後改用下方「預設輸出」繼續往下走。
預設輸出 僅在「錯誤時中止」關閉時出現。指定此步驟出錯時要改用的預設輸出值,讓流程能用替代結果繼續。

Note

外部記憶體選擇器的細部操作見 外部記憶體;串流與錯誤處理欄位與其他任務共用,見 Action 通用設定

實際範例

設定內容:

  • 執行 ARN:$.child_execution_arn

工作流程輸入:

{
  "child_execution_arn": "arn:aws:states:us-east-1:123456789012:execution:process-order:exec-abc123"
}

測試執行的輸出(執行中):

{
  "errors": null,
  "action_type": "describe_workflow_execution_action",
  "status": "RUNNING",
  "output": {}
}

測試執行的輸出(已成功):

{
  "errors": null,
  "action_type": "describe_workflow_execution_action",
  "status": "SUCCEEDED",
  "output": {
    "order_id": "ORD-12345",
    "status": "processed",
    "payment_confirmed": true
  }
}

可依 status 欄位(如 RUNNINGSUCCEEDEDFAILEDTIMED_OUT)做條件分支;狀態為 SUCCEEDED 時,再用 $.output 取用子工作流程的結果。

輪詢策略

搭配 Wait 狀態或錯誤處理分頁的重試邏輯,可定期重複查詢,直到 status 變成 SUCCEEDED 為止;設計輪詢間隔時請一併考慮子工作流程的逾時時間。

三種工作流程執行任務的差別

任務 行為 何時用
Start Workflow Execution 非同步觸發,不等結果,只回傳 ARN 背景作業、平行展開、送出即可的通知
Start Sync Workflow Execution 同步觸發並等待,回傳子工作流程的輸出 需要子工作流程的結果才能繼續時
Describe Workflow Execution(本頁) 用 ARN 查詢某次執行的狀態與結果 追蹤、輪詢非同步啟動的子工作流程

下一步