本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
使用 Map
狀態,為資料集中的每個項目執行一組工作流程步驟。Map
狀態的反覆運算會平行執行,因此可以快速處理資料集。 Map
狀態可以使用各種輸入類型,包括JSON陣列、Amazon S3 物件清單或CSV檔案。
Step Functions 提供兩種類型的處理模式,用於在工作流程中使用 Map
狀態:內嵌模式和分散式模式。
提示
若要將使用 Map
狀態的工作流程範例部署至 AWS 帳戶,請參閱 AWS Step Functions 研討會的模組 5 - 選擇狀態和映射狀態
映射狀態處理模式
Step Functions 會根據您希望如何處理資料集中的項目,為 Map
狀態提供下列處理模式。
-
內嵌 – 有限並行模式。在此模式中,狀態的每個反覆運算都會在包含
Map
狀態的工作流程內容中Map
執行。Step Functions 會將這些反覆運算的執行歷史記錄新增至父工作流程的執行歷史記錄。根據預設,Map
狀態會以內嵌模式執行。在此模式中,
Map
狀態只接受JSON陣列做為輸入。此外,此模式最多支援 40 個並行反覆運算。如需詳細資訊,請參閱在 Step Functions 工作流程的內嵌模式中使用映射狀態。
-
分散式 – 高並行模式。在此模式中,
Map
狀態會以子工作流程執行的方式執行每個反覆運算,這可實現高達 10,000 個平行子工作流程執行的高並行。每個子工作流程執行都有自己的獨立執行歷史記錄,與父工作流程的執行歷史記錄不同。在此模式中,
Map
狀態可接受JSON陣列或 Amazon S3 資料來源作為其輸入,例如 CSV 檔案。如需詳細資訊,請參閱分散式模式。
您應該使用的模式取決於您希望如何處理資料集中的項目。如果工作流程的執行歷史記錄不超過 25,000 個項目,或者如果您不需要超過 40 個並行反覆運算,請在內嵌模式中使用 Map
狀態。
當您需要協調符合下列任一條件組合的大規模平行工作負載時,請在分散式模式中使用 Map
狀態:
資料集的大小超過 256 KiB。
工作流程的執行事件歷史記錄會超過 25,000 個項目。
您需要並行超過 40 個並行反覆運算。
內嵌模式和分散式模式差異
下表重點介紹內嵌和分散式模式之間的差異。
內嵌模式 | 分散式模式 |
---|---|
Supported data sources | |
接受從工作流程中上一個步驟傳遞的JSON陣列做為輸入。 |
接受以下資料來源做為輸入:
|
Map iterations | |
在此模式中,狀態的每個反覆運算都會在包含 |
在此模式中, |
Maximum concurrency for parallel iterations | |
可讓您盡可能同時執行最多 40 個反覆運算。 |
可讓您執行最多 10,000 個平行子工作流程,一次處理數百萬個資料項目。 |
Input payload and event history sizes | |
對輸入承載大小和執行事件歷史記錄中的 25,000 個項目強制執行 256 KiB 的限制。 |
可讓您克服承載大小限制,因為 在此模式中,您也可以克服執行歷史記錄限制,因為由 |
Monitoring and observability | |
您可以從主控台或叫用 您也可以透過 CloudWatch 和 X-Ray 檢視執行歷史記錄。 |
當您在分散式模式下執行 如需詳細資訊,請參閱在 Step Functions 數中檢視分散式對應執行。 |