本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
使用變數 和 管理狀態 JSONata
Step Functions 最近新增了變數,並JSONata管理狀態和轉換資料。
在部落格文章中進一步了解 簡化開發人員對變數和 JSONata 的體驗 AWS Step Functions
當 Step Functions 執行收到JSON輸入時,它會將該資料傳遞到工作流程中的第一個狀態做為輸入。
使用 JSONata,您可以從 擷取狀態輸入$states.input
。您的狀態機器執行也會在 中提供該初始輸入資料內容物件。您可以從 擷取工作流程中任何時間點的原始狀態機器輸入$states.context.Execution.Input
。
當狀態結束時,其輸出可供狀態機器中下一個狀態使用。除非您修改狀態輸出,否則狀態輸入預設會傳遞為狀態輸出。對於後續步驟中可能需要的資料,請考慮將其儲存在變數中。如需更多詳細資訊,請參閱使用變數在狀態之間傳遞資料。
QueryLanguage 建議
對於新的狀態機器,我們建議使用JSONata查詢語言。在未指定查詢語言的 狀態機器中,狀態機器會預設為 ,JSONPath以實現回溯相容性。您必須選擇加入,才能JSONata將 用於您的狀態機器或個別狀態。
使用 處理輸入和輸出 JSONata
使用JSONata表達式,您可以選取和轉換資料。在 Arguments
欄位中,您可以自訂傳送至動作的資料。結果可以在 Output
欄位中轉換為自訂狀態輸出。您也可以在 Assign
欄位中將資料存放在變數中。如需詳細資訊,請參閱使用 轉換資料JSONata。
下圖顯示JSON資訊如何在JSONata任務狀態中移動。

使用 處理輸入和輸出 JSONPath
管理狀態和轉換資料
Step Functions 最近新增了變數,並JSONata管理狀態和轉換資料。
了解如何使用變數傳遞資料,以及使用 轉換資料JSONata。
對於使用 的狀態機器JSONPath,下列欄位控制從狀態到狀態的資料流程:InputPath
、Parameters
、ResultPath
、 ResultSelector
和 OutputPath
。每個JSONPath欄位都可以在工作流程中的每個狀態移動JSON時操作。
JSONPath 欄位可以使用路徑,JSON從輸入或結果中選取 的部分。路徑是以 開頭的字串$
,可識別JSON文字中的節點。Step Functions 路徑使用JsonPath
下圖顯示JSON資訊如何在JSONPath任務狀態中移動。會InputPath
選取要傳遞給 Task
狀態任務的JSON輸入部分 (例如 AWS Lambda 函數)。您可以在 Parameters
欄位中調整傳送至動作的資料。然後,使用 ResultSelector
,您可以選取要轉送的動作結果部分。 ResultPath
然後,選取要傳遞至輸出的狀態輸入和任務結果組合。 OutputPath
可以篩選JSON輸出,以進一步限制傳遞至輸出的資訊。
