如何修正 AWS Batch 中無效的運算環境?
我的 AWS Batch 運算環境處於 INVALID 狀態,並且我收到「CLIENT_ERROR」錯誤訊息。
簡短說明
在 AWS Batch 中,您可能會收到「CLIENT_ERROR」錯誤訊息。發生此情況時,AWS Batch 會將您的運算環境移至「無效」狀態。
**注意:**對於在 Amazon Elastic Kubernetes Service (Amazon EKS) 上的 AWS Batch 運算環境,請參閱「無效」運算環境。
解決方法
如果您的運算環境處於「無效」狀態,請根據您收到的「CLIENT_ERROR」錯誤訊息,採取以下疑難排解動作。
「CLIENT_ERROR - Not authorized to perform sts:AssumeRole」錯誤
若要解決「CLIENT_ERROR - Not authorized to perform sts:AssumeRole」錯誤,請修正無效的服務角色。請完成以下步驟:
- 開啟 AWS Batch console (AWS Batch 主控台)。
- 在導覽窗格中,選擇 Compute environments (運算環境)。
- 選取處於「無效」狀態的運算環境。
**注意:**如果您的運算環境處於「已停用」狀態,請選擇 Enable (啟用) 以啟用您的運算環境。 - 選擇 Edit (編輯)。
- 在 Service role (服務角色) 中,選取具有 AWS Batch 呼叫其他 AWS 服務所需權限的服務角色。
**注意:**您的服務角色會管理您搭配該服務使用的資源。在使用該服務之前,您必須具備提供必要權限的 AWS Identity and Access Management (IAM) 政策與角色。如果您沒有具有必要權限的 IAM 角色,請建立一個。 - 選擇 Save (儲存)。
「CLIENT_ERROR - Parameter: SpotFleetRequestConfig.IamFleetRole is invalid」錯誤
如果您使用 Amazon Elastic Compute Cloud (Amazon EC2) Spot 機群執行個體,那麼您可能會收到「CLIENT_ERROR - Parameter: SpotFleetRequestConfig.IamFleetRole is invalid」錯誤訊息。
對於使用 Spot 機群執行個體的受管運算環境,請建立角色以授予使用 Spot 機群所需的權限。在一般使用情況下,請將 AmazonEC2SpotFleetTaggingRole AWS 受管政策新增至該角色。
**注意:**請使用新的 Spot 機群角色來建立新的運算環境。現有的運算環境無法變更 Spot 機群角色。若要移除不需要的現有環境,請先停用該環境,再將其刪除。如需說明,請前往下一節。
「CLIENT_ERROR - The specified launch template...does not exist」錯誤
如果您與運算環境建立關聯的啟動範本不存在,那麼您會收到以下錯誤訊息:
「CLIENT_ERROR - The specified launch template, with template ID [###], does not exist」
若要對此問題進行疑難排解,請完成以下步驟以停用並刪除運算環境:
- 開啟 AWS Batch console (AWS Batch 主控台)。
- 在導覽窗格中,選擇 Compute environments (運算環境)。
- 選取處於「無效」狀態的運算環境。然後,選擇 Disable (停用)。
- 選擇 Delete (刪除)。
- 建立新的運算環境。
「CLIENT_ERROR - Your compute environment has been INVALIDATED and scaled down」錯誤
當 AWS Batch 橫向擴充運算環境時,容器執行個體會加入 Amazon Elastic Container Service (Amazon ECS) 叢集。如果執行個體無法加入叢集,AWS Batch 會將運算環境標示為無效。當執行個體上的 Amazon ECS 代理程式未在既定時間內呼叫 RegisterContainerInstance API 時,就會發生此情況。AWS Batch 的回應是終止該執行個體,且您將收到以下錯誤:
「CLIENT_ERROR - Your compute environment has been INVALIDATED and scaled down」,因為沒有任何執行個體加入基礎 ECS 叢集。」
在以下情況中,您的執行個體無法加入 Amazon ECS 叢集:
- Amazon Virtual Private Cloud (Amazon VPC) 的子網路組態設定阻止與 Amazon ECS 成功通訊。
- 不正確的執行個體設定檔政策設定會阻止對 Amazon ECS 進行授權。
- 自訂 Amazon Machine Images (AMIs) 或啟動範本組態會影響 Amazon ECS 代理程式。
若要對此問題進行疑難排解,請完成以下步驟:
- 開啟 AWS Batch console (AWS Batch 主控台)。
- 在導覽窗格中,選擇 Compute environments (運算環境)。
- 選取處於「無效」狀態的運算環境。然後,選擇 Disable (停用)。
- 選取相同的運算環境,然後選擇 Enable (啟用)。
上述步驟會重新啟用運算環境,並讓 AWS Batch 將環境標示為「有效」。若要啟動一個執行個體並強制橫向擴充,請將 minVcpus 參數更新為 1。然後,使用執行中的執行個體來對執行個體無法加入 Amazon ECS 叢集的原因進行疑難排解。
「CLIENT_ERROR - Access denied」錯誤
若要解決「CLIENT_ERROR - Access denied」錯誤,請建立具有正確權限的服務角色。或者,選擇具有正確權限的現有服務角色。
「CLIENT_ERROR - Internal error」錯誤
若要解決「CLIENT_ERROR - Internal error」錯誤,請停用運算環境。然後將其重新啟用。如需步驟,請參閱**「CLIENT_ERROR - Your compute environment has been INVALIDATED and scaled down」錯誤**一節。
「CLIENT_ERROR - The request uses the same client token... non-identical request」錯誤
若要解決「CLIENT_ERROR - The request uses the same client token as previous, but non-identical request」錯誤,請先停用您的運算環境,再將其啟用。如需步驟,請參閱**「CLIENT_ERROR - Your compute environment has been INVALIDATED and scaled down」錯誤**一節。
「CLIENT_ERROR - You are not authorized to use launch template」錯誤
若要解決「CLIENT_ERROR - You are not authorized to use launch template」錯誤,請採取以下動作:
- 確認您的服務角色具有必要權限。然後完成 「CLIENT_ERROR - Not authorized to perform sts:AssumeRole」錯誤一節中的步驟。
- 確認您的 AWS 帳戶是否屬於 AWS Organizations。如果是,請確保服務控制政策 (SCP) 不會封鎖您對 Amazon EC2 權限的存取。
若要進一步對 IAM 政策問題進行疑難排解,請參閱如何使用 IAM 政策對存取遭拒或未授權操作錯誤進行疑難排解?
相關資訊
相關內容
已提問 3 年前
AWS 官方已更新 2 年前