地圖工作流程狀 - AWS Step Functions

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

地圖工作流程狀

使用狀Map態為資料集中的每個項目執行一組工作流程步驟。Map狀態的反覆項目會 parallel 執行,因此可以快速處理資料集。 Map狀態可以使用各種輸入類型,包括JSON陣列、Amazon S3 物件清單或CSV檔案。

Step Functions 提供兩種類型的處理模式,可在工作流程中使用Map狀態:內嵌模式和分散式模式。

提示

若要部署使用Map狀態的工作流程範例 AWS 帳戶,請參閱模組 5-選擇狀態與對應狀態AWS Step Functions 工作坊

對映狀態處理模式

Step Functions 會根據您要如何處理資料集中的項目,提供Map狀態的下列處理模式。

  • 內聯-有限並發模式。在此模式下,狀態的每個版序都會在包含Map狀態的工作流程前後關聯中Map執行。Step Functions 會將這些反覆項目的執行歷程記錄新增至父工作流程的執行歷程記錄。依預設,Map狀態會以內嵌模式執行。

    在這種模式下,狀Map態只接受一個JSON數組作為輸入。此外,此模式最多支持 40 個並發迭代。

    如需詳細資訊,請參閱在 Step Functions 工作流程中以內嵌模式使用對映狀態

  • 分佈式-高並發模式。在此模式下,Map狀態會將每個反覆作為子工作流程執行執行執行執行來執行,最多可達 10,000 個 parallel 子項工作流程執行的高並行性。每個子工作流程執行都有自己的執行記錄,與父工作流程的執行歷程記錄不同。

    在此模式下,Map狀態可以接受JSON陣列或 Amazon S3 資料來源 (例如CSV檔案) 作為其輸入。

    如需詳細資訊,請參閱分散式模式

您應該使用的模式取決於您要如何處理資料集中的項目。如果工作流程的執行歷程記錄不超過 25,000 個項目,或者您不需要超過 40 個並行迭代,請在內嵌模式中使用Map狀態。

當您需要協調符合下列任何條件組合的大規模 parallel 工作負載時,請使用分散式模式中的Map狀態:

  • 資料集的大小超過 256 KB。

  • 工作流程的執行事件歷程記錄超過 25,000 個項目。

  • 您需要超過 40 個 parallel 迭代的並發性。

內聯模式和分佈式模式差異

下表反白「內嵌」和「分散式」模式之間的差異。

內嵌模式 分散式模式
Supported data sources

接受從工作流程中上一個步驟傳遞的JSON陣列作為輸入。

接受下列資料來源作為輸入:

  • JSON從工作流程中的上一個步驟傳遞的陣列

  • JSON在包含陣列的 Amazon S3 存儲桶中的文件

  • CSV文件在 Amazon S3 存儲桶

  • Amazon S3 對象列表

  • Amazon S3 清查

Map iterations

在此模式下,狀態的每個版序都會在包含Map狀態的工作流程前後關聯中Map執行。Step Functions 會將這些反覆項目的執行歷程記錄新增至父工作流程的執行歷程記錄。

在此模式下,Map狀態會將每個反覆作為子工作流程執行執行執行執行來執行,最多可達 10,000 個 parallel 子項工作流程執行的高並行性。每個子工作流程執行都有自己的執行記錄,與父工作流程的執行歷程記錄不同。

Maximum concurrency for parallel iterations

可讓您盡可能同時執行多達 40 個反覆項目。

可讓您執行多達 10,000 個 parallel 子工作流程執行,一次處理數百萬個資料項目。

Input payload and event history sizes

對輸入有效負載大小強制執行 256 KB 的限制,並在執行事件歷史記錄中強制執行 25,000 個項目。

可讓您克服承載大小限制,因為該Map狀態可以直接從 Amazon S3 資料來源讀取輸入。

在此模式下,您也可以克服執行歷程記錄的限制,因為由Map狀態開始的子工作流程執行會維護它們自己的執行歷程記錄與父工作流程的執行歷程記錄分開。

Monitoring and observability

您可以從主控台或呼叫GetExecutionHistoryAPI動作來檢閱工作流程的執行歷程記錄。

您還可以通過 CloudWatch 和 X-Ray 查看執行歷史記錄。

當您在分散式模式下執行Map狀態時,「Step Functions」會建立「對應執行」資源。Map Run 是指分散式地圖狀態啟動的一組子工作流程執行。您可以在「Step Functions」主控台中檢視地圖執行。您也可以呼叫DescribeMapRunAPI動作。「地圖執行」也會向其發出 CloudWatch度量。

如需詳細資訊,請參閱在 Step Functions 數中檢視分散式對應執行