選取您的 Cookie 偏好設定

我們使用提供自身網站和服務所需的基本 Cookie 和類似工具。我們使用效能 Cookie 收集匿名統計資料,以便了解客戶如何使用我們的網站並進行改進。基本 Cookie 無法停用,但可以按一下「自訂」或「拒絕」以拒絕效能 Cookie。

如果您同意,AWS 與經核准的第三方也會使用 Cookie 提供實用的網站功能、記住您的偏好設定,並顯示相關內容,包括相關廣告。若要接受或拒絕所有非必要 Cookie,請按一下「接受」或「拒絕」。若要進行更詳細的選擇,請按一下「自訂」。

在 Step Functions redrive中使用 重新啟動狀態機器執行

焦點模式
在 Step Functions redrive中使用 重新啟動狀態機器執行 - AWS Step Functions

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

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

您可以使用 redrive 重新啟動過去 14 天內未成功完成的標準工作流程執行。這些包括失敗、中止或逾時的執行。

當您redrive執行時,Step Functions 會從失敗的步驟中繼續失敗redrive的執行,並使用相同的輸入。 會Step Functions保留成功步驟的結果和執行歷史記錄,這些步驟不會在您執行時重新執行。例如,假設您的工作流程包含兩個狀態: 通過工作流程狀態 狀態,後面接著 任務工作流程狀態 狀態。如果您的工作流程執行在任務狀態失敗,而您redrive執行,則執行會重新排程,然後重新執行任務狀態。

Redriven 執行會使用與原始執行嘗試相同的狀態機器定義和執行 ARN。如果您的原始執行嘗試與版本別名或兩者相關聯,則redriven執行會與相同的版本、別名或兩者相關聯。即使您更新別名以指向不同的版本,redriven執行仍會繼續使用與原始執行嘗試相關聯的版本。由於redriven執行使用相同的狀態機器定義,因此如果您更新狀態機器定義,則必須啟動新的執行。

當您redrive執行時,如果已定義,狀態機器層級逾時會重設為 0。如需狀態機器層級逾時的詳細資訊,請參閱TimeoutSeconds

執行redrives會被視為狀態轉換。如需狀態轉換如何影響帳單的資訊,請參閱 Step Functions 定價

Redrive 執行失敗的資格

如果原始redrive執行嘗試符合下列條件,您可以執行 :

  • 您在 2023 年 11 月 15 日或之後開始執行。您在此日期之前開始的執行不符合 的資格redrive。

  • 執行狀態不是 SUCCEEDED

  • 工作流程執行未超過 14 天的redrivable期間。 Redrivable期間是指您可以redrive指定執行的時間。此期間從狀態機器完成其執行的那一天開始。

  • 工作流程執行未超過一年的最長開啟時間。如需狀態機器執行配額的相關資訊,請參閱 狀態機器執行的相關配額

  • 執行事件歷史記錄計數小於 24,999。 Redriven執行會將其事件歷史記錄附加至現有的事件歷史記錄。請確定您的工作流程執行包含少於 24,999 個事件,以容納ExecutionRedriven歷史記錄事件和至少一個其他歷史記錄事件。

Redrive 個別狀態的行為

根據工作流程中失敗的狀態,所有失敗狀態redrive的行為會有所不同。下表說明所有狀態redrive的行為。

狀態名稱 Redrive 執行行為
通過工作流程狀態

如果上述步驟失敗或狀態機器逾時,則會結束通過狀態,且不會在 上執行redrive。

任務工作流程狀態

再次排程並啟動任務狀態。

當您重新執行任務狀態的redrive執行時,如果已定義狀態TimeoutSeconds的 ,則會重設為 0。如需逾時的詳細資訊,請參閱任務狀態

選擇工作流程狀態 重新評估選擇狀態規則。
等待工作流程狀態

如果狀態指定 TimestampTimestampPath 在過去是指時間戳記, redrive 會導致等待狀態結束,並進入 Next 欄位中指定的狀態。

工作流程狀態成功

不會redrive說明進入成功狀態的機器執行。

失敗的工作流程狀態

重新進入失敗狀態並再次失敗。

平行工作流程狀態

重新排程 ,且redrives僅限失敗或中止的分支。

如果狀態因為States.DataLimitExceeded錯誤而失敗,則會重新執行平行狀態,包括在原始執行嘗試中成功成功的分支。

內嵌映射狀態

重新排程 ,且redrives僅重新執行失敗或中止的反覆運算。

如果狀態因為States.DataLimitExceeded錯誤而失敗,則會重新執行內嵌映射狀態,包括在原始執行嘗試中成功的反覆運算。

分散式映射狀態

redrives Map Run 中失敗的子工作流程執行。如需詳細資訊,請參閱Redriving Step Functions 執行中的映射執行

如果狀態因為States.DataLimitExceeded錯誤而失敗,則會重新執行分散式映射狀態。這包括在原始執行嘗試中成功的子工作流程。

執行redrive的 IAM 許可

Step Functions redrive 需要適當的執行許可。下列 IAM 政策範例會將redriving執行所需的最低權限授予您的狀態機器。請記得將斜體文字取代為您的資源特定資訊。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "states:RedriveExecution" ], "Resource": "arn:aws:states:us-east-2:123456789012:execution:myStateMachine:*" } ] }

如需 redrive Map Run 所需許可的範例,請參閱 分散式映射的 IAM redriving 政策範例

Redriving 主控台中的執行

您可以從 Step Functions 主控台redrive驗證執行。

例如,假設您執行狀態機器,但平行狀態無法執行。

下圖顯示平行狀態中名為 Do 平方數字Lambda調用步驟已傳回且失敗。這也會導致平行狀態失敗。執行進行中或未啟動的分支會停止,且狀態機器執行失敗。

失敗狀態機器執行的範例圖表。
從 主控台前往 redrive 執行
  1. 開啟 Step Functions 主控台,然後選擇執行失敗的現有狀態機器。

  2. 在狀態機器詳細資訊頁面的執行下,選擇失敗的執行執行個體。

  3. 選擇 Redrive

  4. Redrive對話方塊中,選擇Redrive執行

    提示

    如果您在失敗執行的執行詳細資訊頁面上,請對redrive執行執行執行執行下列其中一項:

    • 選擇復原,然後從Redrive失敗中選取。

    • 選擇動作,然後選擇 Redrive

    請注意, redrive使用相同的狀態機器定義和 ARN。它會繼續從在原始執行嘗試中失敗的步驟執行。在此範例中,這是平行狀態內的 Do 平方數字步驟和 Wait 3 秒分支。在平行狀態下重新啟動這些失敗步驟的執行後, redrive會繼續執行完成步驟。

  5. 選擇執行以開啟執行詳細資訊頁面。

    在此頁面上,您可以檢視redriven執行的結果。例如,在 執行摘要區段中,您可以看到Redrive計數,代表執行的次數redriven。在事件區段中,您可以看到redrive相關執行事件附加至原始執行嘗試的事件。例如, ExecutionRedriven事件。

Redriving 使用 API 執行

您可以使用 RedriveExecution API 來redrive限定執行。此 API 會從失敗、中止或逾時的步驟重新啟動標準工作流程的失敗執行。

在 AWS Command Line Interface (AWS CLI) 中redrive,對失敗的狀態機器執行執行執行下列命令。請記得將斜體文字取代為您的資源特定資訊。

aws stepfunctions redrive-execution --execution-arn arn:aws:states:us-east-2:123456789012:execution:myStateMachine:foo

檢查redriven執行

您可以在 主控台或使用 APIs檢查redriven執行:GetExecutionHistoryDescribeExecution

在主控台上檢查redriven執行
  1. 開啟 Step Functions 主控台,然後選擇您已redriven執行的現有狀態機器。

  2. 開啟執行詳細資訊頁面。

    在此頁面上,您可以檢視redriven執行的結果。例如,在 執行摘要區段中,您可以看到Redrive計數,代表執行的次數redriven。在事件區段中,您可以看到redrive相關執行事件附加至原始執行嘗試的事件。例如, ExecutionRedriven事件。

使用 APIs 檢查redriven執行

如果您有redriven狀態機器執行,您可以使用下列其中一個 APIs 來檢視redriven執行的詳細資訊。請記得將斜體文字取代為您的資源特定資訊。

  • GetExecutionHistory – 將指定執行的歷史記錄傳回為事件清單。如果可用,此 API 也會傳回redrive嘗試執行的詳細資訊。

    在 中 AWS CLI,執行下列命令。

    aws stepfunctions get-execution-history --execution-arn arn:aws:states:us-east-2:123456789012:execution:myStateMachine:foo
  • DescribeExecution – 提供有關狀態機器執行的資訊。這可以是與執行相關聯的狀態機器、執行輸入和輸出、執行redrive詳細資訊、是否可用,以及相關的執行中繼資料。

    在 中 AWS CLI,執行下列命令。

    aws stepfunctions describe-execution --execution-arn arn:aws:states:us-east-2:123456789012:execution:myStateMachine:foo

redriven 執行的重試行為

如果您的redriven執行重新執行您已定義重試任務工作流程狀態平行工作流程狀態內嵌映射狀態,則這些狀態的重試嘗試計數會重設為 0,以允許 上的最大嘗試次數redrive。對於redriven執行,您可以使用 主控台追蹤這些狀態的個別重試嘗試。

在主控台中檢查個別重試嘗試
  1. Step Functions 主控台執行詳細資訊頁面上,選擇在 上重試的狀態redrive。

  2. 選擇重試 & redrives索引標籤。

  3. 選擇每次重試嘗試旁的箭頭圖示,以檢視其詳細資訊。如果重試嘗試成功,您可以在出現在下拉式清單中的輸出中檢視結果。

下圖顯示原始執行嘗試中針對 狀態執行的重試範例,以及該執行redrives的 。在此影像中,會在原始嘗試和redrive執行嘗試中執行三次重試。執行在第四次redrive嘗試中成功,並傳回 16 的輸出。

說明性螢幕擷取畫面顯示三次失敗的重試,並在第四次重試時成功。
隱私權網站條款Cookie 偏好設定
© 2025, Amazon Web Services, Inc.或其附屬公司。保留所有權利。