本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
在 Step Functions 中選擇工作流程類
建立狀態機時,您可以選取「標準」或「快速」的「類型」。狀態機器的預設「類型」為「標準」。「類型」為「標準」的狀態機稱為「標準」工作流程,而「類型」為「快速」的狀態機稱為 Express 工作流程。
對於標準和 Express 工作流程,您可以使用定義狀態機器使用 Amazon 州語言定義 Step Functions 工作流程。根據您選取的類型,狀態機器執行的行為會有所不同。
重要
建立狀態機後,無法變更您選擇的工作流程類型。
標準工作流程和快速工作流程可以自動啟動,以回應來自 Amazon API Gateway (大規模完全受管APIs) 的HTTP請求、IoT 規則以及 Amazon EventBridge 中 140 多個其他事件來源等事件。
標準工作流程非常適合長時間執行 (長達一年)、耐用且可稽核的工作流程。您可以在執行完成後 90 天內,使用 Step Functions API 擷取完整的執行歷史記錄。標準工作流程只遵循一次的模型,除非您在中指定了行為,否則您的任務和狀態永遠不會執Retry
行超過一次。ASL這使得標準工作流程適合協調非冪等動作,例如啟動 Amazon EMR 叢集或處理付款。標準工作流程執行會根據處理的狀態轉換數量計費。
Express 工作流程非常適合大量事件處理工作負載,例如 IoT 資料擷取、串流資料處理和轉換,以及行動應用程式後端。這種工作流程最多可以執行五分鐘。Express 工作流程採用at-least-once模型,其中執行可能會執行多次。這使得 Express 工作流程非常適合協調冪等動作,例如在 Amazon DynamoDB 中透過PUT動作轉換輸入資料和存放。Express Workflow 執行的費用是依執行次數、執行的總持續時間,以及執行執行時耗用的記憶體計費。
提示
若要部署快速工作流程範例,請參閱中的平行狀態
標準和快速工作流程類型的比較
類型/類別 | 標準工作流程 | 快速工作流程:同步和非同步 |
---|---|---|
持續時間上限 | 一年 | 五分鐘 |
支援的執行啟動速率 |
如需與支援的執行開始率相關配額的資訊,請參閱與API動作節流相關的配額。 |
如需與支援的執行開始率相關配額的資訊,請參閱與API動作節流相關的配額。 |
支援的狀態轉換速率 |
如需與支援的狀態轉換率相關配額的資訊,請參閱與狀態節流有關的配額。 |
沒有限制 |
定價 |
按狀態轉換數量定價。每次執行中的步驟完成時,就會計算狀態轉換。 | 依您執行的執行次數、其持續時間和記憶體用量來計費。 |
執行歷史記錄 |
執行可以與 Step Functions APIs 起列出和描述。可以通過控制台直觀地調試執行。您也可以在狀態機器上啟用記錄,在記錄 CloudWatch 檔中檢查這些資料。 如需有關在主控台中偵錯標準工作流程執行的詳細資訊,請參閱標準和快速主控台體驗差異和檢視工作流執行。 |
無限制的執行歷史記錄,也就是說,您可以在 5 分鐘內產生的多個執行歷史記錄項目保留。 透過在狀態機器上啟用記錄,可以在記錄 CloudWatch 檔或 Step Functions 主控台中檢查執行。 如需有關在主控台中偵錯 Express 工作流程執行的詳細資訊,請參閱標準和快速主控台體驗差異和檢視工作流執行。 |
執行語義 | 只有一次工作流程執行。 | 非同步快速工作流程:t-least-once工作流程執行。 同步快速工作流程:t-most-once工作流程執行。 |
服務整合 | 支援所有服務整合與模式。 | 支援所有服務整合。注意Express 工作流程不支援工作執行 ( |
分佈式地圖 | 支援 | 不支援 |
活動 | 支援 | 不支援 |
優化工作流類型
在大型資料處理研討會中,請參閱「選擇工作流程類型 (研討會)
步驟函數中的同步和非同步快速工作流
您可以選擇兩種類型的 Express 工作流程:非同步快速工作流程和同步 Express 工作流程。
-
非同步 Express 工作流程會傳回工作流程已啟動的確認,但不要等待工作流程完成。若要取得結果,您必須輪詢服務的CloudWatch 記錄檔。當您不需要立即回應輸出 (例如訊息服務或其他服務不依賴的資料處理) 時,您可以使用非同步 Express 工作流程。您可以啟動非同步 Express 工作流程來回應事件、Step Functions 中的巢狀工作流程,或使用
StartExecution
API呼叫。 -
同步 Express 工作流程會啟動工作流程,等到它完成,然後傳回結果。同步 Express 工作流程可用於協調微服務。使用同步 Express 工作流程,您可以開發應用程式,而不需要開發額外的程式碼來處理錯誤、重試或執行 parallel 工作。您可以執行從 Amazon API 閘道叫用的同步快速工作流程, AWS Lambda,或通過使用
StartSyncExecution
API呼叫。注意
如果您從主控台同步執行 Step Functions Express 工作流程,
StartSyncExecution
請求會在 60 秒後過期。若要同步執行 Express 工作流程,最長可達五分鐘,StartSyncExecution
請使用 AWS SDK或 AWS Command Line Interface (AWS CLI) 而非 Step Functions 主控台。同步 Express 執行API呼叫不會造成現有帳戶容量限制。Step Functions 可依需求提供容量,並隨著持續的工作負載自動擴充 工作負載激增可能會受到限制,直到容量可用為止。
Step Functions 工作流程中的執行保
標準工作流程 | 異步快速工作流 | 同步快速工作流 |
---|---|---|
只執行一次工作流程 | t-least-once工作流程執行 | t-most-once工作流程執行 |
狀態轉換之間在內部持續執行狀態。 | 狀態轉換之間的執行狀態不會持續存在。 | 狀態轉換之間的執行狀態不會持續存在。 |
在啟動與目前正在執行的工作流程相同名稱的執行時,自動傳回冪等回應。新的工作流程不會啟動,一旦目前執行的工作流程完成,就會擲回例外狀況。 | 冪等不會自動管理。啟動多個具有相同名稱的工作流程會導致並行執行。如果狀態機器邏輯不是冪等的,可能會導致內部工作流程狀態遺失。 | 冪等不會自動管理。Step Functions 等待一旦執行開始,並在完成後返回狀態機的結果。如果發生例外,工作流程不會重新啟動。 |
執行歷程記錄資料會在 90 天後移除。移除 out-of-date 執行資料後,可重複使用工作流程名稱。 若要符合法規遵循、組織或法規需求,您可以傳送配額要求,將執行歷程記錄保留期限縮短為 30 天。若要這麼做,請使用 AWS Support Center Console 並創建一個新案例。 |
Step Functions 不會擷取執行歷史記錄。必須透過 Amazon CloudWatch 日誌啟用記錄功能。 | Step Functions 不會擷取執行歷史記錄。必須透過 Amazon CloudWatch 日誌啟用記錄功能。 |