本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
您可以使用 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執行時,如果已定義狀態 |
選擇工作流程狀態 | 重新評估選擇狀態規則。 |
等待工作流程狀態 |
如果狀態指定 |
工作流程狀態成功 |
不會redrive說明進入成功狀態的機器執行。 |
失敗的工作流程狀態 |
重新進入失敗狀態並再次失敗。 |
平行工作流程狀態 |
重新排程 ,且redrives僅限失敗或中止的分支。 如果狀態因為 |
內嵌映射狀態 |
重新排程 ,且redrives僅重新執行失敗或中止的反覆運算。 如果狀態因為 |
分散式映射狀態 |
redrives Map Run 中失敗的子工作流程執行。如需詳細資訊,請參閱Redriving Step Functions 執行中的映射執行。 如果狀態因為 |
執行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 執行
-
開啟 Step Functions 主控台
,然後選擇執行失敗的現有狀態機器。 -
在狀態機器詳細資訊頁面的執行下,選擇失敗的執行執行個體。
-
選擇 Redrive。
-
在Redrive對話方塊中,選擇Redrive執行。
提示
如果您在失敗執行的執行詳細資訊頁面上,請對redrive執行執行執行執行下列其中一項:
-
選擇復原,然後從Redrive失敗中選取。
-
選擇動作,然後選擇 Redrive。
請注意, redrive使用相同的狀態機器定義和 ARN。它會繼續從在原始執行嘗試中失敗的步驟執行。在此範例中,這是平行狀態內的 Do 平方數字步驟和 Wait 3 秒分支。在平行狀態下重新啟動這些失敗步驟的執行後, redrive會繼續執行完成步驟。
-
-
選擇執行以開啟執行詳細資訊頁面。
在此頁面上,您可以檢視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執行:GetExecutionHistory 和 DescribeExecution。
在主控台上檢查redriven執行
-
開啟 Step Functions 主控台
,然後選擇您已redriven執行的現有狀態機器。 -
開啟執行詳細資訊頁面。
在此頁面上,您可以檢視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執行,您可以使用 主控台追蹤這些狀態的個別重試嘗試。
在主控台中檢查個別重試嘗試
-
在 Step Functions 主控台
的執行詳細資訊頁面上,選擇在 上重試的狀態redrive。 -
選擇重試 & redrives索引標籤。
-
選擇每次重試嘗試旁的箭頭圖示,以檢視其詳細資訊。如果重試嘗試成功,您可以在出現在下拉式清單中的輸出中檢視結果。
下圖顯示原始執行嘗試中針對 狀態執行的重試範例,以及該執行redrives的 。在此影像中,會在原始嘗試和redrive執行嘗試中執行三次重試。執行在第四次redrive嘗試中成功,並傳回 16 的輸出。
