本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
ItemsPath (地圖,僅限 JSONPath)
管理狀態和轉換資料
此頁面是指 JSONPath。Step Functions 最近新增了變數和 JSONata 來管理狀態和轉換資料。
了解如何使用變數傳遞資料,以及使用 JSONata 轉換資料。
在以 JSONPath 為基礎的狀態下,使用 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
。下列狀態機器定義會使用 指定輸入中的ThingsPiratesSay
陣列ItemsPath
。然後,它會針對ThingsPiratesSay
陣列中的每個項目執行SayWord
傳遞狀態的反覆運算。
{
"StartAt": "PiratesSay",
"States": {
"PiratesSay": {
"Type": "Map",
"ItemsPath": "$.ThingsPiratesSay",
"ItemProcessor": {
"StartAt": "SayWord",
"States": {
"SayWord": {
"Type": "Pass",
"End": true
}
}
},
"End": true
}
}
}
處理輸入時, Map
狀態會在 ItemsPath
之後套用InputPath。它會在InputPath
篩選輸入之後,在 狀態的有效輸入上運作。
如需 Map
狀態的詳細資訊,請參閱下列內容: