本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
管理狀態和轉換資料
Step Functions 最近新增了變數,並JSONata管理狀態和轉換資料。
了解如何使用變數傳遞資料,以及使用 轉換資料JSONata。
根據預設,Map
狀態的有效輸入是原始狀態輸入中存在的一組個別資料項目。ItemSelector
欄位可讓您在資料項目傳遞至 Map
狀態之前,先覆寫資料項目的值。若要覆寫這些值,請指定包含金鑰值對集合的有效JSON輸入。這些對可以是在您的狀態機器定義中提供的靜態值、使用路徑從狀態輸入中選取的值,或從內容物件存取的值。
如果您使用路徑或內容物件指定鍵/值對,則鍵名稱必須以 結尾.$
。
注意
ItemSelector
欄位會取代 Map
狀態內的 Parameters
欄位。如果您使用Map
狀態定義中的 Parameters
欄位來建立自訂輸入,強烈建議您將其取代為 ItemSelector
。
您可以同時指定內嵌映射狀態和分散式映射狀態ItemSelector
的欄位。
例如,請考慮以下JSON輸入,其中包含imageData
節點中三個項目的陣列。對於每個Map
狀態反覆運算,陣列項目會做為輸入傳遞至反覆運算。
[
{
"resize": "true",
"format": "jpg"
},
{
"resize": "false",
"format": "png"
},
{
"resize": "true",
"format": "jpg"
}
]
您可以使用 ItemSelector
欄位定義自訂JSON輸入,以覆寫原始輸入,如下列範例所示。步驟函數接著會將此自訂輸入傳遞至每個Map
狀態反覆運算。自訂輸入包含 的靜態值,size
以及 Map
狀態的內容物件資料值。$$.Map.Item.Value
內容物件包含每個個別資料項目的值。
{
"ItemSelector": {
"size": 10,
"value.$": "$$.Map.Item.Value"
}
}
下列範例顯示一次反覆接收的內嵌映射狀態輸入:
{
"size": 10,
"value": {
"resize": "true",
"format": "jpg"
}
}
提示
如需使用 ItemSelector
欄位之分散式映射狀態的完整範例,請參閱 CSV使用分佈式地圖進行大規。