查看工作流程執行¶
「查看工作流程執行」任務會用一個執行識別碼 (Execution ARN) 去查詢某次工作流程執行的狀態與結果,而不是啟動新的執行。最常見的用法是:先用 執行工作流程 非同步觸發子工作流程拿到 ARN,之後再用這個任務去檢查它跑完了沒、結果是什麼。若要同步啟動並直接等結果,請用 執行同步工作流程。
這頁能幫你做什麼¶
- 檢查非同步啟動的子工作流程目前的狀態(執行中、成功、失敗、逾時)。
- 取回已完成執行的輸出 (
output),供後續步驟使用。 - 搭配「等待 (Wait)」狀態或重試邏輯,做出「輪詢直到完成」的協調模式(「等待」在「新增狀態」面板的「流程」分頁,見 流程控制節點)。
- 依執行狀態建立條件分支(例如成功才繼續、失敗就走補救流程)。
開始前¶
前置需求
執行 ARN 是什麼?
ARN 是 AWS 給「某一次工作流程執行」的一串唯一識別字串,可以想成這次執行的收據編號。本任務不會自己生出 ARN,而是拿著別人給的 ARN 去查那一次執行的狀態與結果。新手通常不必手打 ARN,而是把上一步「執行工作流程」回傳的 executionArn 接過來用。在 UI 詳細頁看到這串 ARN 時,旁邊的 複製與 開啟連結按鈕用法(含「開啟連結會導向 AWS 主控台」的注意事項)見 ARN 欄位的「複製」與「開啟連結」。
最小可跟做範例:先觸發、再查詢¶
把兩個任務串起來,就能「先啟動子工作流程,再回頭查它跑完沒」:
- 第一步放一個 執行工作流程 任務,挑好要呼叫的子工作流程。它執行後會回傳
executionArn(如何新增請見 任務使用指南)。 - 點選第一步的節點,切到面板的「輸入與輸出」分頁,把「ResultPath」這一格改成
$.child_execution(它預設是$.<步驟名稱>Result)。ResultPath 就是「這一步的結果要放到哪個位置」,改成這個路徑後,下一步就能從$.child_execution底下取到剛才那次執行的回傳內容(也就是含executionArn的那包)。ResultPath 的完整說明見 任務通用設定 › 輸入與輸出設定。 - 第二步放本任務(查看工作流程執行),在「執行 ARN」打開「JSONPath」開關、填
$.child_execution.executionArn(欄位右側有下拉箭頭,點開會列出目前狀態裡可用的欄位,不必全部手打)——也就是「到上一步存下的那包結果裡,取executionArn這個欄位」。 - 試跑後即可在輸出看到該次執行的
status(執行中/成功/失敗)與output。
操作步驟¶
-
在工作流程編輯器中新增一個「查看工作流程執行」(Describe Workflow Execution) 節點。它在「新增狀態」面板的「工作流程執行」分類下,面板顯示的是中文「查看工作流程執行」,可以直接把這五個字貼到面板上方的搜尋框裡找(如何新增請見 任務使用指南)。

圖中「執行 ARN」填的是
$.executionArn,那是「上一步的結果直接就是整包執行資訊」的簡化情境。若你照上方範例把上一步的 ResultPath 設成$.child_execution,這一格就要填$.child_execution.executionArn——前半段永遠對應你在上一步填的 ResultPath。 -
點選節點,右側開啟設定表單。
- 在「名稱」填入這個步驟的識別名稱。
- 在「執行 ARN」填入要查詢的執行識別碼,通常打開「JSONPath」開關從狀態帶入,例如
$.child_execution.executionArn。路徑的前半段要對應你在上一步的「輸入與輸出」分頁把 ResultPath 設成什麼(見上方最小可跟做範例)。 -
視需要展開「執行設定」調整外部記憶體、串流與錯誤處理行為。

-
選擇「下一個狀態」。編輯器會自動把變更存成草稿(頂部會顯示「草稿已儲存」,沒有一顆叫「存檔」的按鈕),接著就可以用表單上方的「測試任務」按鈕()試跑並檢視回傳的
status與output。
完整欄位說明¶
下表為這個任務在「設定」分頁的特有欄位。共用欄位(下一個狀態、附註、輸入與輸出分頁、錯誤處理分頁)的完整說明集中在 任務通用設定。
| 欄位 | 必填 | 預設 | 說明 |
|---|---|---|---|
| 名稱 | 是 | 無 | 這個步驟在工作流程裡的識別名稱,須在同一工作流程內唯一。 |
| 執行 ARN | 是 | 無 | 要查詢的工作流程執行識別碼。可直接貼上 ARN,或打開「JSONPath」開關從目前狀態動態帶入,例如 $.child_execution.executionArn(開關平常隱藏,要把滑鼠移到欄位上才會浮出來,見 任務通用設定)。此值通常來自先前「執行工作流程」任務的回傳,路徑寫法取決於你在那一步把 ResultPath 設成什麼(見最小可跟做範例)。 |
Note
這個任務只有「執行 ARN」一個特有輸入欄位,沒有「執行來源」「工作流程」「輸入」等啟動類欄位,因為它是用既有的 ARN 查詢、而非啟動新執行。
執行設定(摺疊區塊)¶
在「設定」分頁底部展開「執行設定」可看到下列欄位,控制這個步驟實際執行時的行為。
| 欄位 | 必填 | 預設 | 說明 |
|---|---|---|---|
| 上傳輸出至外部記憶體 | 否 | 關閉 | 開關。查回來的輸出資料量很大時開啟,把輸出改存到外部記憶體。開啟後會多出選擇器設定,指定要把哪部分輸出存到外部記憶體。 |
| 在任務開始階段開啟即時輸出串流 | 否 | 關閉 | 開關。開啟後,任務開始時把任務定義以串流方式即時送到執行頁面顯示。 |
| 在任務結束階段開啟即時輸出串流 | 否 | 關閉 | 開關。開啟後,任務結束時把結果以串流方式即時送到執行頁面顯示。 |
| 錯誤時中止 | 否 | 開啟 | 開關。開啟(預設)代表此步驟出錯時整個工作流程中止;關閉後改用下方「預設輸出」繼續往下走。 |
| 預設輸出 | 否 | 無 | 僅在「錯誤時中止」關閉時出現。指定此步驟出錯時要改用的預設輸出值,讓流程能用替代結果繼續。 它展開後是一組英文標籤的子欄位(Errors + 這個任務的輸出欄位),見 預設輸出的子欄位。 |
實際範例¶
設定內容:
- 執行 ARN:
$.child_execution.executionArn(打開「JSONPath」開關填入)
工作流程輸入:
{
"child_execution": {
"executionArn": "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 欄位(如 RUNNING、SUCCEEDED、FAILED、TIMED_OUT)做條件分支;狀態為 SUCCEEDED 時,再用 $.output 取用子工作流程的結果。
輪詢策略
搭配「等待 (Wait)」狀態或錯誤處理分頁的重試邏輯,可定期重複查詢,直到 status 變成 SUCCEEDED 為止;設計輪詢間隔時請一併考慮子工作流程的逾時時間。「等待」狀態在「新增狀態」面板的「流程」分頁(不是「任務」分頁),用法見 流程控制節點。
三種工作流程執行任務的差別¶
| 任務 | 行為 | 何時用 |
|---|---|---|
| 執行工作流程 | 非同步觸發,不等結果,只回傳 ARN | 背景作業、平行展開、送出即可的通知 |
| 執行同步工作流程 | 同步觸發並等待,回傳子工作流程的輸出 | 需要子工作流程的結果才能繼續時 |
| 查看工作流程執行(本頁) | 用 ARN 查詢某次執行的狀態與結果 | 追蹤、輪詢非同步啟動的子工作流程 |