本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
管理狀態和轉換資料
Step Functions 最近新增了變數,並JSONata管理狀態和轉換資料。
了解如何使用變數傳遞資料,以及使用 轉換資料JSONata。
在 Amazon States 語言中,路徑是開頭為 的字串$
,可用來識別JSON文字中的元件。路徑遵循JsonPathQueryLanguage
設定為 時才能使用JSONPath。當指定 InputPath
、ResultPath
和 OutputPath
的值時,您可以指定用來存取輸入子集的路徑。
如果您的欄位名稱包含JsonPath ABNFmember-name-shorthand
定義中未包含的任何字元,則必須使用方括號表示法。因此,若要編碼特殊字元,例如標點符號 (不含 _
),您必須使用方括號表示法。例如:$.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
有些狀態使用路徑和參考路徑來控制狀態機器的流程,或設定狀態的設定或選項。如需詳細資訊,請參閱使用資料流程模擬器建立工作流程輸入和輸出路徑處理的模型
平面化陣列陣列
如果狀態機器中的 平行工作流程狀態或 映射工作流程狀態 狀態傳回陣列,您可以使用 ResultSelector 欄位將陣列轉換為平面陣列。您可以在平行或映射狀態定義中包含此欄位,以操作這些狀態的結果。
若要扁平化陣列,請在 ResultSelector
[*]
欄位中使用語法:,如下列範例所示。
"ResultSelector": {
"flattenArray.$": "$[*][*]"
}
如需示範如何扁平化陣列的範例,請參閱下列教學課程中的步驟 3: