

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

# 執行失敗原因
<a name="workflows-run-errors"></a>

如果執行失敗，請使用 [GetRun](https://docs.aws.amazon.com/omics/latest/api/API_GetRun.html) API 操作來擷取失敗原因。

檢閱失敗原因，以協助您疑難排解執行失敗的原因。下表列出每個失敗原因以及錯誤的說明。


| 故障原因 | 錯誤說明 | 
| --- | --- | 
| ASSUME\_ROLE\_FAILED | HealthOmics 沒有擔任該角色的許可。在角色的信任關係中指定 HealthOmics 委託人。 | 
| CANNOT\_START\_CONTAINER\_ERROR | 無法啟動工作流程任務：{{名稱}}、ID：使用映像的 {{ID}} 容器：{{映像名稱}}。請確定映像有效，然後再試一次。 | 
| CANNOT\_START\_CONTAINER\_SIZE\_ERROR | 無法啟動工作流程任務：{{名稱}}、ID：使用映像的 {{ID}} 容器：{{映像名稱}}。請確定映像大小小於 45 GiB (GPU 執行個體為 95 GiB)，然後再試一次。 | 
| ECR\_PERMISSION\_ERROR | HealthOmics 沒有存取映像 URI 的許可。確認 Amazon ECR 私有儲存庫存在，並已授予 HealthOmics 服務主體的存取權。 | 
| EXPORT\_FAILED | 匯出失敗。檢查輸出儲存貯體是否存在，且執行角色具有對儲存貯體的寫入許可。 | 
| FILE\_SYSTEM\_OUT\_OF\_SPACE | 檔案系統沒有足夠的空間。增加檔案系統大小並再次執行。 | 
| IMAGE\_VERIFICATION\_FAILURE | 無法驗證{{映像名稱}}。若要修正此問題，請嘗試提取映像，然後再次將其推送到您的 ECR 儲存庫。 | 
| IMPORT\_FAILED | 匯入失敗。檢查輸入檔案是否存在，且執行角色可以存取輸入。 | 
| INACTIVE\_OMICS\_STORAGE\_RESOURCE  | HealthOmics 儲存 URI 未處於 ACTIVE 狀態。啟用讀取集，然後再試一次。若要進一步了解啟用讀取集，請參閱 [在 HealthOmics 中啟用讀取集](activating-read-sets.md)。 | 
| INPUT\_URI\_NOT\_FOUND | 提供的 URI 不存在：{{uri}}。檢查 URI 路徑是否存在，並確認角色可以存取物件。 | 
| INSTANCE\_RESERVATION\_FAILED | 沒有足夠的執行個體容量來完成工作流程執行。等待並再次嘗試工作流程執行。 | 
| INVALID\_ECR\_IMAGE\_URI | Amazon ECR 映像 URI 結構無效。請提供有效的 URI，然後再試一次。 | 
| INVALID\_TASK\_RESOURCE\_VALUE | 請求的 GPU、CPU 或記憶體對於可用的運算容量過高，或小於任務 {{ID}} 的最小值 1。 | 
| INVALID\_URI\_INPUT | URI 結構不是有效的 {{uri}}。請檢查 URI 結構，然後再試一次。 | 
|  MODIFIED\_INPUT\_RESOURCE  | 提供的 URI {{uri}} 已在執行開始後修改。重試執行。 | 
| OUT\_OF\_MEMORY\_ERROR | 工作流程任務 {{ID}} 記憶體不足。增加工作流程定義中的記憶體值，然後再次嘗試執行。 | 
| RUN\_TASK\_FAILED | 執行失敗，因為任務失敗。若要偵錯任務失敗，請使用 **GetRunTask** API 操作和 Amazon CloudWatch Logs 串流。 | 
| RUN\_TIMED\_OUT | 在{{幾分鐘}}後執行逾時。 | 
|  SERVICE\_ERROR  | 服務中發生暫時性錯誤。再次嘗試工作流程執行。 | 
| TASK\_TIMED\_OUT | 任務 {{ID}} 在{{數}}秒後逾時。 | 
| UNSUPPORTED\_INPUT\_SIZE | 總輸入大小太高。減少輸入大小，然後再試一次。 | 
| WORKFLOW\_RUN\_FAILED | 工作流程執行失敗。檢閱 CloudWatch Logs 引擎日誌串流：用於偵錯失敗的 {{ID}}。 | 
| WORKFLOW\_VER\_VALIDATION\_FAILED | HealthOmics 不支援請求的 Nextflow 版本：{{版本}} --。最新的支援版本為 {{版本}}。將您的 Nextflow 版本修改為支援的版本，然後再試一次。 | 
| UNSUPPORTED\_GPU\_INSTANCE\_TYPE | {{區域}}不支援請求的執行個體類型。使用此區域支援的 GPU 執行個體類型重試執行。可用的執行個體類型為 {{GPU 執行個體類型}}。 | 

## 無回應執行的指引
<a name="workflows-guidance-unresponsive-runs"></a>

開發新的工作流程時，如果程式碼發生問題，執行或特定任務可能會變成「停滯」或「停止」，而且任務無法正常結束程序。這對於故障診斷和捕捉可能具有挑戰性，因為任務長時間執行是正常的。若要防止和識別無回應的執行，請遵循下列各節中建議的最佳實務。

**防止無回應執行的最佳實務**
+ 請確定您正在關閉任務程式碼中開啟的所有檔案。開啟太多檔案偶爾可能會導致工作流程引擎中的執行緒問題。
+ 工作流程任務建立的背景程序應在任務結束時結束。不過，如果背景程序無法順利結束，您必須在任務程式碼中明確關閉該程序。
+ 確保您的程序不會在沒有結束的情況下循環。這可能會導致無回應的執行，並且需要變更工作流程定義程式碼才能解決。
+ 為您的任務提供適當的記憶體和 CPU 配置。分析 [CloudWatch 日誌](https://docs.aws.amazon.com/omics/latest/dev/monitoring-cloudwatch-logs.html)或在成功完成的工作流程執行[執行分析器](workflows-run-optimize.md#workflows-run-analyzer)時使用 ，以確認您擁有最佳的運算配置。使用 Run Analyzer `headroom` 參數來包含額外的空間，確保程序有足夠的資源可完成。在配置的記憶體和 CPU 中包含至少 5% 的預留空間，以考慮背景作業系統程序。
  + 此外，如果執行個體需要更高的輸送量，請增加執行個體頻寬大小。少於 16 個 vCPUs Amazon EC2 執行個體可能會發生輸送量暴增。如需 Amazon EC2 執行個體輸送量的詳細資訊，請參閱 [Amazon EC2 可用的執行個體頻寬](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-network-bandwidth.html#available-instance-bandwidth)。
+ 請確定您使用正確的檔案系統大小來執行 。對於使用靜態執行儲存的無回應執行，請考慮增加靜態執行儲存配置，以在檔案系統上啟用更高的 IO 輸送量和儲存容量。分析執行資訊清單以查看最大檔案系統儲存，使用 Run Analyzer 判斷是否需要增加檔案系統配置。

**擷取無回應執行的最佳實務**
+ 開發新的工作流程時，請使用已設定執行時間上限的執行群組來擷取失控程式碼。例如，如果執行需要 1 小時才能完成，請將其放在 2 或 3 小時 （或根據您的使用案例的不同時段） 後逾時的執行群組中，以擷取失控任務。此外，套用緩衝區以考量處理時間的差異。
+ 設定一系列具有不同最大執行時間限制的執行群組。例如，您可以將短執行指派給在幾個小時後終止執行的執行群組，以及根據預期的工作流程持續時間，在幾天後終止執行的長執行群組。
+ HealthOmics 的預設執行持續時間服務限制上限為 604，800 秒或 7 天，可透過配額工具中的請求進行調整。只有在您有每週接近持續時間的執行時，才請求提高此配額的服務限制。如果您有短執行和長執行的混合，且未使用執行群組，請考慮將長時間執行的執行放在具有較高執行持續時間服務限制上限的個別帳戶中。
+ 檢查 [CloudWatch 日誌](https://docs.aws.amazon.com/omics/latest/dev/monitoring-cloudwatch-logs.html)是否有您懷疑可能沒有回應的任務。如果任務通常會輸出一般日誌陳述式，並且長時間沒有這樣做，則任務可能會卡住或凍結。

**如果您遇到無回應的執行該怎麼辦**
+ 取消執行以避免產生額外費用。
+ 檢查[任務日誌](https://docs.aws.amazon.com/omics/latest/dev/monitoring-cloudwatch-logs.html#cloudwatch-logs)，以檢查是否有任何程序無法正確結束。
+ 檢查[引擎日誌](https://docs.aws.amazon.com/omics/latest/dev/monitoring-cloudwatch-logs.html#cloudwatch-logs)以識別任何異常的引擎行為。
+ 比較無回應執行的任務和引擎日誌與相同、成功完成的執行。這有助於識別可能導致無回應行為的任何差異。
+ 如果您無法判斷根本原因，請提出[支援案例](https://docs.aws.amazon.com/awssupport/latest/user/case-management.html#creating-a-support-case)並包含下列項目：
  + 停滯執行的 ARN 和成功完成的相同執行的 ARN。
  + 引擎日誌 （當執行已取消或失敗時可用）
  + 無回應任務的任務日誌。我們不需要工作流程中所有任務的任務日誌，即可進行故障診斷。