

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

# 中的服務任務重試策略 AWS Batch
<a name="service-job-retries"></a>

服務任務重試策略 AWS Batch 允許 在特定條件下自動重試失敗的服務任務。

服務任務可能需要多次嘗試，原因如下：
+ **暫時性服務問題**：內部服務錯誤、限流或暫時中斷可能會導致任務在提交或執行期間失敗。
+ **訓練初始化失敗**：任務啟動期間的問題，例如映像提取問題或初始化錯誤，可能會在重試時解決。

透過設定適當的重試策略，您可以提高任務成功率並減少手動介入的需求，尤其是長時間執行的訓練工作負載。

**注意**  
服務任務會自動重試某些類型的失敗，例如容量不足錯誤，而不會消耗您設定的重試嘗試。您的重試策略主要處理其他類型的失敗，例如演算法錯誤或服務問題。

## 設定重試策略
<a name="configuring-service-job-retries"></a>

服務任務重試策略是使用 [ServiceJobRetryStrategy](https://docs.aws.amazon.com/batch/latest/APIReference/API_ServiceJobRetryStrategy.html) 設定，它同時支援簡單的重試計數和條件式重試邏輯。

### 重試組態
<a name="basic-retry-configuration"></a>

最簡單的重試策略會指定服務任務失敗時應進行的重試嘗試次數：

```
{
  "retryStrategy": {
    "attempts": 3
  }
}
```

此組態可讓服務任務在失敗時重試最多 3 次。

**重要**  
此`attempts`值代表任務可置於 `RUNNABLE` 狀態的總次數，包括初始嘗試次數。值為 3 表示任務一開始會嘗試一次，然後在失敗時再重試最多 2 次。

### 使用 evaluateOnExit 重試組態
<a name="advanced-retry-configuration"></a>

您可以使用 `evaluateOnExit` 參數來指定任務應重試或允許失敗的條件。當不同類型的失敗需要不同的處理時，這非常有用。

`evaluateOnExit` 陣列最多可包含 5 個重試策略，每個策略會根據狀態原因指定動作 (`RETRY` 或 `EXIT`) 和條件：

```
{
  "retryStrategy": {
    "attempts": 5,
    "evaluateOnExit": [
      {
        "action": "RETRY",
        "onStatusReason": "Received status from SageMaker: InternalServerError*"
      },
      {
        "action": "EXIT",
        "onStatusReason": "Received status from SageMaker: ValidationException*"
      },
      {
        "action": "EXIT",
        "onStatusReason": "*"
      }
    ]
  }
}
```

此組態：
+ 重試因 SageMaker AI 內部伺服器錯誤而失敗的任務
+ 遇到驗證例外狀況的任務立即失敗 （無法透過重試解決的用戶端錯誤）
+ 包含針對任何其他失敗類型結束的所有截獲規則

#### 狀態原因模式比對
<a name="status-reason-patterns"></a>

`onStatusReason` 參數支援最多 512 個字元的模式比對。模式可以使用萬用字元 (\$1)，並根據 SageMaker AI 傳回的狀態原因進行比對。

對於服務任務，來自 SageMaker AI 的狀態訊息字首為「從 SageMaker 接收的狀態：」，以區分它們與 AWS Batch產生的訊息。常見模式包括：
+ `Received status from SageMaker: InternalServerError*` - 符合內部服務錯誤
+ `Received status from SageMaker: ValidationException*` - 比對用戶端驗證錯誤
+ `Received status from SageMaker: ResourceLimitExceeded*` - 比對資源限制錯誤
+ `*CapacityError*` - 比對容量相關的故障

**提示**  
使用特定模式比對來適當處理不同的錯誤類型。例如，重試內部伺服器錯誤，但驗證錯誤顯示任務參數有問題時立即失敗。