轉換 - AWS Step Functions

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

轉換

當您開始新的狀態機執行時,系統會從頂層StartAt欄位中參照的狀態開始。此欄位 (以字串形式指定) 必須完全相符 (包括大小寫) 在工作流程中的狀態名稱。

狀態執行之後,AWS Step Functions會使用Next欄位的值來決定下一個要前進的狀態。

Next欄位也會將狀態名稱指定為字串。此字串區分大小寫,且必須與狀態機器描述中指定的狀態名稱完全相符

例如,以下狀態包含對 NextState 的移轉。

"SomeState" : { ..., "Next" : "NextState" }

大多數狀態只允許具有Next欄位的單一轉移規則。但是,某些流量控制狀態 (例如Choice狀態) 可讓您指定多個轉移規則,每個規則都有自己Next的欄位。Amazon 狀態語言提供每個您可以指定之狀態類型的詳細資訊,包括有關如何指定轉換的資訊。

狀態可以具有來自其他狀態的多個傳入轉換。

程序會重複執行,直到達終端機狀態 (具有、或的狀態"End": true) "Type": Succeed"Type": Fail,或發生執行階段錯誤為止。

當你執redrive行時,它被認為是一個狀態轉換。此外,在中重新執行的所有狀態也redrive會被視為狀態轉換。

下列規則適用於狀態機器內的狀態:

  • 狀態可以在封閉區塊內以任何順序出現。但是,它們的列出順序不會影響它們的運行順序。該順序取決於狀態的內容。

  • 在狀態機內,只能有一個狀態指定為狀start態。狀start態由頂層結構中StartAt欄位的值定義。

  • 根據您的狀態機器邏輯(例如,如果狀態機具有多個邏輯分支),您可能會有多個end狀態。

  • 如果您的狀態機只包含一種狀態,則它可以是開始和結束狀態。

分散式貼圖狀態下的轉移

當您在分散式模式中使用Map狀態時,會針對分散式地圖狀態啟動的每個子工作流程執行向您收取一次狀態轉換費用。當您在內嵌模式中使用Map狀態時,不會針對內嵌對應狀態的每次迭代向您收取狀態轉換費用。

您可以使用「分散式」模式中的Map狀態來最佳化成本,並在Map狀態定義中包含巢狀工作流程。當您啟動 Express 類型的子工作流程執行時,「分散式對應」狀態也會增加更多值。Step Functions 數會儲存 Express 子工作流程執行的回應和狀態,以減少在 CloudWatch 記錄中儲存執行資料的需求。您也可以存取「分散式對應」狀態下可用的流程控制項,例如定義錯誤閾值或批次處理項目群組。如需 Step Functions 定價的相關資訊,請參閱AWS Step Functions定價