執行同步工作流程¶
「啟動同步工作流程執行」任務會同步呼叫另一個工作流程 (Workflow):觸發後會等待子工作流程跑完,並把它的輸出回傳,讓目前的工作流程能直接拿結果繼續往下做。若你只想觸發、不想等結果,請改用 Start Workflow Execution;若要查詢某次(尤其是非同步啟動的)執行狀態,請用 Describe Workflow Execution。
這頁能幫你做什麼¶
- 把複雜流程拆成可重複使用的子工作流程,再用這個任務串接、組合(Workflow 組合)。
- 在繼續之前先呼叫驗證、轉換或資料擴充的子工作流程,並直接取得回傳結果。
- 拿到子工作流程的
output後,用 JSONPath(如$.output.field)在後續步驟使用。
開始前¶
前置需求
- 你要呼叫的子工作流程必須已經建立。建立方式見 建立工作流程。
- 這個任務不能呼叫自己所在的工作流程,選單會把目前這個工作流程設為不可選。
- 同步等待會佔用父工作流程的時間,請留意子工作流程的執行時間,避免父流程在等待時逾時。
ARN 是什麼?不用怕
你會看到「狀態機器 ARN」「Execution ARN」這類字眼。ARN 只是 AWS 給每個資源或每次執行的一串唯一識別字串,用來精準指到某個對象。一般情境下,「執行來源」維持預設「工作流程 ID」、直接從清單挑選子工作流程即可,完全不需要碰 ARN。只有要呼叫非本平台建立的外部對象時,才需要填 ARN。在 UI 詳細頁看到 ARN 時,旁邊的 複製與 開啟連結按鈕用法(含「開啟連結會導向 AWS 主控台」的注意事項)見 ARN 欄位的「複製」與「開啟連結」。
操作步驟¶
-
在工作流程編輯器中新增一個「執行同步工作流程」(Start Sync Workflow Execution) 節點(在「新增狀態」面板的調色盤中標籤為中文「執行同步工作流程」,請以此搜尋;通用步驟見 Action 使用指南)。

-
點選節點,右側開啟設定表單。
- 在「名稱」填入這個步驟的識別名稱。
- 在「執行來源」選擇「工作流程 ID」或「狀態機器 ARN」。
- 選好子工作流程(或填入狀態機器 ARN)。
- 在「輸入」填入要傳給子工作流程的資料(JSON 或 JSONPath)。
-
視需要展開「執行設定」調整外部記憶體、串流與錯誤處理行為。

-
選擇「下一個狀態」,存檔後可用表單上方的測試按鈕()試跑並檢視回傳的
output。
完整欄位說明¶
下表為這個任務在「設定」分頁的特有欄位。共用欄位(下一個狀態、附註、輸入與輸出分頁、錯誤處理分頁)的完整說明集中在 Action 通用設定。
| 欄位 | 必填 | 預設 | 說明 |
|---|---|---|---|
| 名稱 | 是 | 無 | 這個步驟在工作流程裡的識別名稱,須在同一工作流程內唯一。 |
| 執行來源 | 否(恆有預設值) | 工作流程 ID | 下拉選單,決定怎麼指定要呼叫的子工作流程;此欄位永遠帶有預設值,畫面標籤上沒有紅星號。選項:工作流程 ID (Workflow ID) =從平台上已建立的工作流程清單挑選;狀態機器 ARN (State Machine ARN) =直接填入狀態機器 ARN,用於非平台建立的執行對象。切換來源會清掉先前已選的對象。 |
| 工作流程 | 是 | 無 | 僅在「執行來源」為「工作流程 ID」時出現。從清單選出要呼叫的子工作流程;目前所在的工作流程不可選。也可按欄位上的「JSONPath」切換鈕改為「使用 JSONPath 表示式」輸入框,動態指定要呼叫的工作流程。 |
| 狀態機器 ARN | 是 | 無 | 僅在「執行來源」為「狀態機器 ARN」時出現。填入要觸發的狀態機器 ARN。 |
| 輸入 | 否 | 空 | 要傳給子工作流程的輸入資料。以 JSON 物件撰寫,值可用 JSONPath($ 開頭)從目前工作流程的狀態動態帶入,例如 { "order": "$.order_data" }。不填則不帶入額外輸入。 |
| 上傳輸入至外部記憶體 | 否 | 關閉 | 開關。輸入資料量很大時開啟,把輸入改存到外部記憶體,避免塞爆工作流程狀態。開啟後會多出下方的「狀態記憶體輸入選擇器」。 |
| 狀態記憶體輸入選擇器 | 否 | 無 | 僅在開啟上一項時出現。用一組鍵值對指定要存進外部記憶體的輸入內容,每個值須為參照狀態輸入的 JSONPath 表達式。 |
執行設定(摺疊區塊)¶
在「設定」分頁底部展開「執行設定」可看到下列欄位,控制這個步驟實際執行時的行為。
| 欄位 | 必填 | 預設 | 說明 |
|---|---|---|---|
| 上傳輸出至外部記憶體 | 否 | 關閉 | 開關。輸出資料量很大時開啟,把輸出改存到外部記憶體。開啟後會多出選擇器設定,指定要把哪部分輸出存到外部記憶體。 |
| 在任務開始階段開啟即時輸出串流 | 否 | 關閉 | 開關。開啟後,任務開始時把任務定義以串流方式即時送到執行頁面顯示。 |
| 在任務結束階段開啟即時輸出串流 | 否 | 關閉 | 開關。開啟後,任務結束時把結果以串流方式即時送到執行頁面顯示。 |
| 錯誤時中止 | 否 | 開啟 | 開關。開啟(預設)代表此步驟出錯時整個工作流程中止;關閉後改用下方「預設輸出」繼續往下走。 |
| 預設輸出 | 否 | 無 | 僅在「錯誤時中止」關閉時出現。指定此步驟出錯時要改用的預設輸出值,讓流程能用替代結果繼續。 |
Note
這個任務的設定面板與非同步版 Start Workflow Execution 完全相同;兩者唯一的差別是執行行為(同步等待 vs. 觸發即返回),表單上沒有額外的等待或逾時欄位。外部記憶體選擇器細節見 外部記憶體。
實際範例¶
設定內容:
- 執行來源:工作流程 ID
- 工作流程:
validate-order-workflow - 輸入:
{ "order": "$.order_data" }
工作流程輸入:
{
"order_data": {
"order_id": "ORD-12345",
"customer_id": "CUST-789",
"items": [
{ "sku": "WIDGET-A", "quantity": 2, "price": 49.99 },
{ "sku": "GADGET-B", "quantity": 1, "price": 129.99 }
],
"total": 229.97
}
}
測試執行的輸出:
{
"errors": null,
"action_type": "start_sync_workflow_execution_action",
"executionArn": "arn:aws:states:us-east-1:123456789012:execution:validate-order:exec-xyz",
"status": "SUCCEEDED",
"output": {
"validation_result": "APPROVED",
"inventory_status": "IN_STOCK",
"estimated_ship_date": "2026-03-07",
"risk_score": 0.15
}
}
子工作流程的結果在 output 欄位中,可立即在後續步驟以 JSONPath 取用,例如 $.output.validation_result。
三種工作流程執行任務的差別¶
| 任務 | 行為 | 何時用 |
|---|---|---|
| Start Workflow Execution | 非同步觸發,不等結果,只回傳 ARN | 背景作業、平行展開、送出即可的通知 |
| Start Sync Workflow Execution(本頁) | 同步觸發並等待,回傳子工作流程的輸出 | 需要子工作流程的結果才能繼續時 |
| Describe Workflow Execution | 用 ARN 查詢某次執行的狀態與結果 | 追蹤、輪詢非同步啟動的子工作流程 |
下一步¶
- 了解如何 建立工作流程 作為可重複使用的子工作流程。
- 不需要立即結果時,改用 Start Workflow Execution。
- 到 工作流程執行與結果 查看執行紀錄與輸出。
- 回到 Action 通用設定 了解共用欄位。