什麼是 Step Functions? - AWS Step Functions

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

什麼是 Step Functions?

管理狀態和轉換資料

您可以使用 AWS Step Functions建立工作流程,也稱為 狀態機器,以建置分散式應用程式、自動化程序、協調微服務,以及建立資料和機器學習管道。

Step Functions 是以狀態機器任務為基礎。在 Step Functions 中,狀態機器稱為工作流程,這是一系列的事件驅動步驟。工作流程中的每個步驟都稱為 狀態。例如,任務狀態代表另一個 AWS 服務執行的工作單位,例如呼叫另一個 AWS 服務 或 API。執行執行任務之工作流程的執行個體在 Step Functions 中稱為執行

狀態機器任務中的工作也可以使用 完成,活動這些是 Step Functions 外部的工作者。

Step Functions 工作流程圖表的說明性範例。

在 Step Functions 主控台中,您可以視覺化、編輯和偵錯應用程式的工作流程。您可以檢查工作流程中每個步驟的狀態,以確保您的應用程式依預期順序執行。

根據您的使用案例,您可以讓 Step Functions 呼叫 AWS 服務,例如 Lambda,來執行任務。您可以讓 Step Functions 控制 AWS 服務 AWS Glue,例如建立擷取、轉換和載入工作流程。也可以為需要人為互動的應用程式建立長時間執行的自動化工作流程。

如需 Step Functions 可用 AWS 區域的完整清單,請參閱AWS 區域表

了解如何使用 Step Functions

從本指南入門教學課程中的 開始。如需進階主題和使用案例,請參閱「步驟功能」研討會中的模組。

標準和快速工作流程類型

Step Functions 有兩種工作流程類型:

  • 標準工作流程非常適合長時間執行且可稽核的工作流程,因為它們會顯示執行歷史記錄和視覺化偵錯。

    標準工作流程執行的工作流程完全相同,最多可以執行一年。這表示標準工作流程中的每個步驟都會完全執行一次。

  • Express 工作流程非常適合high-event-rate工作負載,例如串流資料處理和 IoT 資料擷取。

    Express at-least-once工作流程,最多可執行五分鐘。這表示快速工作流程中的一或多個步驟可能會執行超過一次,而工作流程中的每個步驟至少執行一次。

標準工作流程 快速工作流程
每秒 2,000 個執行率 每秒 100,000 個執行率
每秒 4,000 個狀態轉換率 幾乎無限制的狀態轉換率
依狀態轉換定價 依執行次數和持續時間定價
顯示執行歷史記錄和視覺化偵錯 根據日誌層級顯示執行歷史記錄和視覺化偵錯
請參閱 Step Functions 中的執行歷史記錄

將執行歷史記錄傳送至 CloudWatch

支援與所有 服務的整合。

支援與某些 服務的最佳化整合。

支援與所有 服務的整合。
支援所有 服務的請求回應模式

支援在特定服務中執行任務和/或等待回呼模式 (如需詳細資訊,請參閱下一節)

支援所有 服務的請求回應模式

如需 Step Functions 定價和選擇工作流程類型的詳細資訊,請參閱以下內容:

與其他 服務整合

Step Functions 與多個 AWS 服務整合。若要呼叫 AWS 其他服務,您可以使用兩種整合類型:

  • AWS SDK 整合可讓您直接從狀態機器呼叫任何 AWS 服務,讓您存取數千個 API 動作。

  • 最佳化整合提供自訂選項,可讓您在狀態機器中使用這些服務。

若要將 Step Functions 與其他 服務結合,有三種服務整合模式

標準工作流程和快速工作流程支援相同的整合,但不支援相同的整合模式

  • 標準工作流程支援請求回應整合。某些服務支援執行任務 (.sync)等待回呼 (.waitForTaskToken),在某些情況下則支援兩者。如需詳細資訊,請參閱下列最佳化整合資料表。

  • Express Workflows 僅支援請求回應整合。

若要協助決定這兩種類型,請參閱 在 Step Functions 中選擇工作流程類型

AWS Step Functions 中的 SDK 整合

整合式服務 請求回應 執行任務 - .sync 等待回呼 - .waitForTaskToken
超過 200 個服務 標準 & Express 不支援 標準

Step Functions 中的最佳化整合

整合式服務 請求回應 執行任務 - .sync 等待回呼 - .waitForTaskToken
Amazon API Gateway 標準 & Express 不支援 標準
Amazon Athena 標準 & Express 標準 不支援
AWS Batch 標準 & Express 標準 不支援
Amazon Bedrock 標準 & Express 標準 標準
AWS CodeBuild 標準 & Express 標準 不支援
Amazon DynamoDB 標準 & Express 不支援 不支援
Amazon ECS/Fargate 標準 & Express 標準 標準
Amazon EKS 標準 & Express 標準 標準
Amazon EMR 標準 & Express 標準 不支援
Amazon EMR on EKS 標準 & Express 標準 不支援
Amazon EMR Serverless 標準 & Express 標準 不支援
Amazon EventBridge 標準 & Express 不支援 標準
AWS Glue 標準 & Express 標準 不支援
AWS Glue DataBrew 標準 & Express 標準 不支援
AWS Lambda 標準 & Express 不支援 標準
AWS Elemental MediaConvert 標準 & Express 標準 不支援
Amazon SageMaker AI 標準 & Express 標準 不支援
Amazon SNS 標準 & Express 不支援 標準
Amazon SQS 標準 & Express 不支援 標準
AWS Step Functions 標準 & Express 標準 標準

工作流程的範例使用案例

Step Functions 會管理應用程式的元件和邏輯,因此您可以撰寫較少的程式碼,並專注於快速建置和更新應用程式。下圖顯示 Step Functions 工作流程的六個使用案例。

六個常見工作流程使用案例的視覺化範例,如以下文字所述。

  1. 協調任務 – 您可以建立工作流程,以特定順序協調一系列的任務或步驟。例如,任務 A 可能是一個 Lambda 函數,為任務 B 中的另一個 Lambda 函數提供輸入。 工作流程中的最後一個步驟會提供最終結果。

  2. 根據資料選擇任務 – 您可以使用 Choice 狀態,讓 Step Functions 根據狀態的輸入做出決策。例如,假設客戶請求提高額度限制。如果請求超過您客戶的預先核准額度限制,您可以讓 Step Functions 將客戶的請求傳送給經理以簽署。如果請求少於您客戶的預先核准額度,您可以讓 Step Functions 自動核准請求。

  3. 錯誤處理 (Retry / Catch) – 您可以重試失敗的任務,或擷取失敗的任務並自動執行替代步驟。

    例如,在客戶請求使用者名稱之後,第一次呼叫您的驗證服務可能會失敗,因此您的工作流程可能會重試請求。當第二個請求成功時,工作流程可以繼續。

    或者,也許客戶請求的使用者名稱無效或無法使用,Catch陳述式可能會導致 Step Functions 工作流程步驟建議替代的使用者名稱。

    如需 Retry和 的範例Catch,請參閱 處理 Step Functions 工作流程中的錯誤

  4. 循環中的人工 – Step Functions 可以在工作流程中包含人工核准步驟。例如,假設銀行客戶嘗試將資金傳送給朋友。使用回呼和任務字符,您可以讓 Step Functions 等待直到客戶朋友確認轉移,然後 Step Functions 將繼續工作流程,通知銀行客戶轉移已完成。

    如需範例,請參閱「使用 Amazon SQS、Amazon SNS 和 Lambda 建立回呼模式範例」。

  5. 平行步驟處理資料 – 使用 Parallel 狀態,Step Functions 可以平行步驟處理輸入資料。例如,客戶可能需要將影片檔案轉換為數個顯示解析度,所以觀眾可以在多個裝置上觀看影片。您的工作流程可以將原始影片檔案傳送至數個 Lambda 函數,或使用最佳化 AWS Elemental MediaConvert 整合,同時將影片處理成多個顯示器解析度。

  6. 動態處理資料元素 – Step Functions 可以使用 Map 狀態,在資料集的每個項目上執行一組工作流程步驟。反覆運算會平行執行,因此可以快速處理資料集。例如,當您的客戶訂購三十個項目時,您的系統需要套用相同的工作流程,以準備每個項目交付。收集並封裝所有項目以進行交付後,下一個步驟可能是快速將追蹤資訊的確認電子郵件傳送給客戶。

    如需入門範本的範例,請參閱 使用映射處理資料