路徑 - AWS Step Functions

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

路徑

在 Amazon 州語言中,路徑是一個字串,開頭$為可用來識別 JSON 文字中的元件。路徑遵循JsonPath語法。當指定 InputPathResultPathOutputPath 的值時,您可以指定用來存取輸入子集的路徑。如需更多資訊,請參閱 Step Functions 中的輸入和輸出處理

注意

您也可以使用狀態定義中 Parameters 欄位的路徑,指定輸入或內容物件的 JSON 節點。請參閱 將參數傳遞至服務 API

如果您的欄位名稱包含 JsonPath ABNF 規則member-name-shorthand定義中未包含的任何字元,則必須使用方括號標記法。因此,若要編碼特殊字元,例如標點符號 (排除_),您必須使用方括號符號。例如 $.abc.['def ghi']

參考路徑

參考路徑是一種語法有限的路徑,可供僅只識別 JSON 結構中的單一節點:

  • 您可以僅使用點 (.) 和方括號 ([ ]) 符號來存取物件欄位。

  • 不支援函數,例如 length()

  • 詞法運算符,這是非符號的,例如subsetof不支持。

  • 不支援依規則運算式篩選或參考 JSON 結構中的其他值。

  • 與篩選器中處理的目前節點相符的@運算子不符合純量值。它只匹配對象。

例如,如果狀態輸入資料包含下列值:

{ "foo": 123, "bar": ["a", "b", "c"], "car": { "cdr": true }, "jar": [{"a": 1}, {"a": 5}, {"a": 2}, {"a": 7}, {"a": 3}] }

下列參考路徑會傳回下列。

$.foo => 123 $.bar => ["a", "b", "c"] $.car.cdr => true $.jar[?(@.a >= 5)] => [{"a": 5}, {"a": 7}]

有些狀態使用路徑和參考路徑來控制狀態機器的流程,或設定狀態的設定或選項。如需詳細資訊,請參閱使用資料流程模擬器建模工作流程輸入和輸出路徑處理和在中有效使用 JSONPath。 AWS Step Functions

扁平化陣列的陣列

如果狀態機器中的平行Map state 傳回陣列陣列陣列,您可以將它們轉換成含有ResultSelector欄位的平面陣列。您可以將此欄位包含在「平行」或「對映」狀態定義中,以操作這些狀態的結果。

若要扁平化陣列,請在ResultSelector欄位中使用 JMESPath [*] 語法,如下列範例所示。

"ResultSelector": { "flattenArray.$": "$[*][*]" }

如需示範如何平面化陣列的範例,請參閱下列自學課程中的步驟 3