執行工作流程¶
「啟動工作流程執行」任務會非同步呼叫另一個工作流程 (Workflow):觸發後立刻往下走,不等待子工作流程跑完,只拿回一個執行識別碼 (Execution ARN)。若你需要等子工作流程的結果再繼續,請改用 Start Sync Workflow Execution;若想之後查詢這次執行的狀態與結果,請搭配 Describe Workflow Execution。
這頁能幫你做什麼¶
- 在一個工作流程裡「點火」啟動另一個工作流程,自己不用停下來等。
- 適合背景作業、平行展開(一次觸發多個子工作流程)、或「送出就好、不在意即時結果」的通知情境。
- 取得子工作流程的執行識別碼 (Execution ARN),之後可用 Describe Workflow Execution 追蹤。
開始前¶
前置需求
- 你要呼叫的子工作流程必須已經建立,才能在「執行來源」選到它。建立方式見 建立工作流程。
- 這個任務不能呼叫自己所在的工作流程(避免無限遞迴),選單會把目前這個工作流程設為不可選。
Execution ARN 是什麼?什麼時候才需要?
這個任務觸發後會回傳一個 executionArn。ARN 只是 AWS 給「某一次工作流程執行」的一串唯一識別字串,就像一張收據編號,用來日後指認這次執行。一般情境下,「執行來源」維持預設「工作流程 ID」、直接從清單挑子工作流程即可,不需要自己手打 ARN。只有當你之後想用 Describe Workflow Execution 查詢這次執行跑完了沒,才會用到這個回傳的 ARN(把它存進工作流程狀態再傳過去)。在 UI 詳細頁看到這串 ARN 時,旁邊的 複製與 開啟連結按鈕用法(含「開啟連結會導向 AWS 主控台」的注意事項)見 ARN 欄位的「複製」與「開啟連結」。
操作步驟¶
-
在工作流程編輯器中新增一個「執行工作流程」(Start Workflow Execution) 節點(在「新增狀態」面板的調色盤中標籤為中文「執行工作流程」,請以此搜尋;新增節點的通用步驟見 Action 使用指南)。

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

-
選擇「下一個狀態」,存檔後即可用表單上方的測試按鈕()試跑。
完整欄位說明¶
下表為這個任務在「設定」分頁的特有欄位。共用欄位(下一個狀態、附註、輸入與輸出分頁、錯誤處理分頁)的完整說明集中在 Action 通用設定。
| 欄位 | 必填 | 預設 | 說明 |
|---|---|---|---|
| 名稱 | 是 | 無 | 這個步驟在工作流程裡的識別名稱,須在同一工作流程內唯一。 |
| 執行來源 | 否(恆有預設值) | 工作流程 ID | 下拉選單,決定怎麼指定要呼叫的子工作流程;此欄位永遠帶有預設值,畫面標籤上沒有紅星號。選項:工作流程 ID (Workflow ID) =從平台上已建立的工作流程清單挑選;狀態機器 ARN (State Machine ARN) =直接填入 AWS Step Functions 狀態機器的 ARN,用於非平台建立的執行對象。切換來源會清掉先前已選的對象。 |
| 工作流程 | 是 | 無 | 僅在「執行來源」為「工作流程 ID」時出現。從清單選出要呼叫的子工作流程;目前所在的工作流程不可選。也可按欄位上的「JSONPath」切換鈕改為「使用 JSONPath 表示式」輸入框,動態指定要呼叫的工作流程。 |
| 狀態機器 ARN | 是 | 無 | 僅在「執行來源」為「狀態機器 ARN」時出現。填入要觸發的狀態機器 ARN。 |
| 輸入 | 否 | 空 | 要傳給子工作流程的輸入資料。以 JSON 物件撰寫,值可用 JSONPath($ 開頭)從目前工作流程的狀態動態帶入,例如 { "order": "$.order_data" }。不填則不帶入額外輸入。 |
| 上傳輸入至外部記憶體 | 否 | 關閉 | 開關。輸入資料量很大時開啟,把輸入改存到外部記憶體,避免塞爆工作流程狀態。開啟後會多出下方的「狀態記憶體輸入選擇器」。 |
| 狀態記憶體輸入選擇器 | 否 | 無 | 僅在開啟上一項時出現。用一組鍵值對指定要存進外部記憶體的輸入內容,每個值須為參照狀態輸入的 JSONPath 表達式。 |
執行設定(摺疊區塊)¶
在「設定」分頁底部展開「執行設定」可看到下列欄位,控制這個步驟實際執行時的行為。
| 欄位 | 必填 | 預設 | 說明 |
|---|---|---|---|
| 上傳輸出至外部記憶體 | 否 | 關閉 | 開關。輸出資料量很大時開啟,把輸出改存到外部記憶體。開啟後會多出選擇器設定,指定要把哪部分輸出存到外部記憶體。 |
| 在任務開始階段開啟即時輸出串流 | 否 | 關閉 | 開關。開啟後,任務開始時把任務定義以串流方式即時送到執行頁面顯示。 |
| 在任務結束階段開啟即時輸出串流 | 否 | 關閉 | 開關。開啟後,任務結束時把結果以串流方式即時送到執行頁面顯示。 |
| 錯誤時中止 | 否 | 開啟 | 開關。開啟(預設)代表此步驟出錯時整個工作流程中止;關閉後改用下方「預設輸出」繼續往下走。 |
| 預設輸出 | 否 | 無 | 僅在「錯誤時中止」關閉時出現。指定此步驟出錯時要改用的預設輸出值,讓流程能用替代結果繼續。 |
Note
此任務的「執行設定」共用 Action 通用設定 的串流與錯誤處理欄位;外部記憶體選擇器的細部操作見 外部記憶體。
實際範例¶
設定內容:
- 執行來源:工作流程 ID
- 工作流程:
send-notification-workflow - 輸入:
{ "notification": "$.notification_data" }
工作流程輸入:
{
"order_id": "ORD-12345",
"notification_data": {
"customer_email": "customer@example.com",
"order_status": "shipped",
"tracking_number": "TRK-987654321"
}
}
測試執行的輸出:
{
"errors": null,
"action_type": "start_workflow_execution_action",
"executionArn": "arn:aws:states:us-east-1:123456789012:execution:send-notification:exec-abc123"
}
任務會立即回傳執行識別碼 (executionArn),但不包含子工作流程的結果。要取得結果,請把這個 ARN 傳給 Describe Workflow Execution 查詢。
三種工作流程執行任務的差別¶
| 任務 | 行為 | 何時用 |
|---|---|---|
| Start Workflow Execution(本頁) | 非同步觸發,不等結果,只回傳 ARN | 背景作業、平行展開、送出即可的通知 |
| Start Sync Workflow Execution | 同步觸發並等待,回傳子工作流程的輸出 | 需要子工作流程的結果才能繼續時 |
| Describe Workflow Execution | 用 ARN 查詢某次執行的狀態與結果 | 追蹤、輪詢非同步啟動的子工作流程 |
下一步¶
- 了解如何 建立工作流程 作為子工作流程。
- 學會用 Describe Workflow Execution 查詢這次執行的結果。
- 到 工作流程執行與結果 查看執行紀錄與輸出。
- 回到 Action 通用設定 了解共用欄位。