

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

# 管道步驟的重試政策
<a name="pipelines-retry-policy"></a>

重試政策可協助在發生錯誤後自動重試 Pipelines 步驟。任何管道步驟都可能會遇到例外狀況，而發生例外狀況的原因有很多。在某些情況下，重試可以解決這些問題。透過管道步驟的重試政策，您可以選擇是否重試特定管道步驟。

重試政策僅支援下列管道步驟：
+ [處理步驟](build-and-manage-steps-types.md#step-type-processing) 
+ [訓練步驟](build-and-manage-steps-types.md#step-type-training) 
+ [調校步驟](build-and-manage-steps-types.md#step-type-tuning) 
+ [AutoML 步驟](build-and-manage-steps-types.md#step-type-automl) 
+ [建立模型步驟](build-and-manage-steps-types.md#step-type-create-model) 
+ [註冊模型步驟](build-and-manage-steps-types.md#step-type-register-model) 
+ [轉換步驟](build-and-manage-steps-types.md#step-type-transform) 
+ [筆記本任務步驟](build-and-manage-steps-types.md#step-type-notebook-job) 

**注意**  
在調校和 AutoML 步驟中執行的任務會在內部執行重試，而且不會重試 `SageMaker.JOB_INTERNAL_ERROR` 例外狀況類型，即使已設定重試政策也是如此。您可以使用 SageMaker API 來對自己的[重試政策](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_RetryStrategy.html)進行程式設計。

## 重試政策支援的例外狀況類型
<a name="pipelines-retry-policy-supported-exceptions"></a>

管道步驟的重試政策支援下列例外狀況類型：
+ `Step.SERVICE_FAULT`：如果呼叫下游服務時發生內部伺服器錯誤或暫時性錯誤，就會發生這些例外狀況。Pipelines 會自動針對此類型的錯誤重試。憑藉重試政策，您可以覆寫此例外狀況類型的預設重試操作。
+ `Step.THROTTLING`：呼叫下游服務時可能會發生限流例外狀況。Pipelines 會自動針對此類型的錯誤重試。憑藉重試政策，您可以覆寫此例外狀況類型的預設重試操作。
+ `SageMaker.JOB_INTERNAL_ERROR`：SageMaker AI 任務傳回 `InternalServerError` 時，會發生這些例外狀況。在此情況下，啟動新任務可能會修正暫時性問題。
+ `SageMaker.CAPACITY_ERROR`：SageMaker AI 任務可能會遇到 Amazon EC2 `InsufficientCapacityErrors`，這會導致 SageMaker AI 任務失敗。您可以透過啟動新的 SageMaker AI 任務來重試，以避免發生此問題。
+ `SageMaker.RESOURCE_LIMIT`：執行 SageMaker AI 任務時，您可以超出資源限制配額。您可以在短時間後等待並重新嘗試執行 SageMaker AI 任務，並查看資源是否已釋放。

## 重試政策的 JSON 結構描述
<a name="pipelines-retry-policy-json-schema"></a>

管道的重試政策具有下列 JSON 結構描述：

```
"RetryPolicy": {
   "ExceptionType": [String]
   "IntervalSeconds": Integer
   "BackoffRate": Double
   "MaxAttempts": Integer
   "ExpireAfterMin": Integer
}
```
+ `ExceptionType`：此欄位需要字串陣列格式的下列例外狀況類型。
  + `Step.SERVICE_FAULT`
  + `Step.THROTTLING`
  + `SageMaker.JOB_INTERNAL_ERROR`
  + `SageMaker.CAPACITY_ERROR`
  + `SageMaker.RESOURCE_LIMIT`
+ `IntervalSeconds` (可選)：第一次重試嘗試之前的秒數 (預設值為 1)。`IntervalSeconds` 的最大值為 43200 秒 (12 小時)。
+ `BackoffRate` (可選)：乘數，重試間隔會在每次嘗試時隨之增加 (預設值為 2.0)。
+ `MaxAttempts` (可選)：正整數，代表重試次數上限 (預設值為 5)。如果出現錯誤的次數超過 `MaxAttempts` 指定的次數，則重試會停止且一般錯誤處理會繼續執行。值為 0 表示永遠不會重試錯誤。`MaxAttempts` 最大值為 20。
+ `ExpireAfterMin` (可選)：正整數，代表重試的最大時間範圍。如果從步驟開始計數 `ExpireAfterMin` 分鐘後再次發生錯誤，則重試會停止且一般錯誤處理會繼續執行。值為 0 表示永遠不會重試錯誤。`ExpireAfterMin ` 的最大值為 14,400 分鐘 (10 天)。
**注意**  
只能指定 `MaxAttempts` 或 `ExpireAfterMin` 中的一個，但不能同時指定兩者；如果*未*指定兩者，則 `MaxAttempts` 會變成預設值。如果在一項政策中識別了兩個屬性，則重試政策會產生驗證錯誤。