使用路徑存取 Step Functions 工作流程的輸入 - AWS Step Functions

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

使用路徑存取 Step Functions 工作流程的輸入

在 Amazon States 語言中,路徑是一個開頭的字串$,可用來識別JSON文字中的元件。路徑遵循JsonPath語法。當指定 InputPathResultPathOutputPath 的值時,您可以指定用來存取輸入子集的路徑。如需詳細資訊,請參閱 在 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

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

扁平化陣列的陣列

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

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

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

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