ItemsPath (地圖) - AWS Step Functions

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

ItemsPath (地圖)

使用ItemsPath欄位在提供給Map狀態的JSON輸入內選取陣列。狀Map態會針對陣列中的每個項目重複一組步驟。默認情況下,Map狀態設置ItemsPath$,選擇整個輸入。如果Map狀態的輸入是一個JSON數組,它會為數組中的每個項目運行迭代,將該項目作為輸入傳遞給迭代。

注意

只有當您ItemsPath在工作流程中使用從先前狀態傳遞的JSON輸入時,才能在「分散式貼圖」狀態中使用。

您可以使用該ItemsPath字段來指定輸入中指向用於迭代JSON數組的位置。的值ItemsPath必須是參考路徑,且該路徑必須指向JSON陣列。例如,請考慮包含兩個陣列的 Map 狀態輸入,如下列範例所示。

{ "ThingsPiratesSay": [ { "say": "Avast!" }, { "say": "Yar!" }, { "say": "Walk the Plank!" } ], "ThingsGiantsSay": [ { "say": "Fee!" }, { "say": "Fi!" }, { "say": "Fo!" }, { "say": "Fum!" } ] }

在這種情況下,您可以通過使用選擇來指定要用於Map狀態迭代的數組ItemsPath。下列狀態機器定義會使用 ItemsPath It 指定輸入中的ThingsPiratesSay陣列,然後針對陣列中的每個項目執行SayWord傳遞狀態的ThingsPiratesSay反覆運算。

{ "StartAt": "PiratesSay", "States": { "PiratesSay": { "Type": "Map", "ItemsPath": "$.ThingsPiratesSay", "ItemProcessor": { "StartAt": "SayWord", "States": { "SayWord": { "Type": "Pass", "End": true } } }, "End": true } } }

處理輸入時,狀Map態適用於ItemsPath之後InputPath。它在InputPath過濾輸入後的有效輸入到狀態上進行操作。

如需 Map 狀態的詳細資訊,請參閱下列內容: