本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
使用路徑存取 Step Functions 工作流程的輸入
在 Amazon States 語言中,路徑是一個開頭的字串$
,可用來識別JSON文字中的元件。路徑遵循JsonPathInputPath
、ResultPath
和 OutputPath
的值時,您可以指定用來存取輸入子集的路徑。如需詳細資訊,請參閱 在 Step Functions 中處理輸入和輸出。
注意
您也可以使用狀態定義Parameters
欄位內的路徑,來指定輸入或前後關聯物件的JSON節點。請參閱 將參數傳遞給 Step Functions 數API中的服務。
如果您的欄位名稱包含任何未包含在規則member-name-shorthand
定義中的字元,JsonPath ABNF_
),您必須使用方括號符號。例如:$.abc.['def ghi']
。
參考路徑
參考路徑是一個路徑,其語法受到限制,因此它只能識別JSON結構中的單個節點:
-
您可以僅使用點 (
.
) 和方括號 ([ ]
) 符號來存取物件欄位。 -
不支援函數,例如
length()
。 -
詞法運算符,這是非符號的,例如
subsetof
不支持。 -
不支援依規則運算式或參照JSON結構中的其他值進行篩選。
-
不支援運算子
@
:
、、和,
?
例如,如果狀態輸入資料包含下列值:
{
"foo": 123,
"bar": ["a", "b", "c"],
"car": {
"cdr": true
}
}
下列參考路徑會傳回下列。
$.foo => 123
$.bar => ["a", "b", "c"]
$.car.cdr => true
有些狀態使用路徑和參考路徑來控制狀態機器的流程,或設定狀態的設定或選項。有關詳情,請參閱使用資料流程模擬器建立工作流程輸入和輸出路徑處理
扁平化陣列的陣列
如果狀態機器中的平行工作流狀態或 地圖工作流程狀 state 傳回陣列陣列陣列,您可以將它們轉換成含有ResultSelector欄位的平面陣列。您可以將此欄位包含在「平行」或「對映」狀態定義中,以操作這些狀態的結果。
若要扁平化陣列,請使用ResultSelector
欄位[*]
中的JMESPath語法
"ResultSelector": { "flattenArray.$": "$[*][*]" }
如需示範如何平面化陣列的範例,請參閱下列自學課程中的步驟 3: