AWS Batch 中的運算環境處於「無效」狀態。如何解決該錯誤?
簡短描述
收到錯誤: 「CLIENT_ERROR - 您的運算環境已失效且縮減規模,因為沒有任何執行個體加入基礎 ECS 叢集。阻止執行個體加入的常見問題如下所示: VPC/子網路組態阻止與 ECS 通訊、不正確的執行個體設定檔政策阻止向 ECS 授權,或自訂 AMI 或 LaunchTemplate 組態影響 ECS 代理程式。」
阻止執行個體加入 Amazon Elastic Container Service (Amazon ECS) 叢集的問題包括:
- Amazon Virtual Private Cloud (Amazon VPC) 子網路組態設定無法與 Amazon ECS 成功通訊。
- 執行個體設定檔政策中的錯誤設定阻止向 Amazon ECS 授權。
- 自訂 Amazon Machine Images (AMI) 或啟動範本組態影響 ECS 代理程式。
CLIENT_ERROR 訊息表示 AWS Batch 運算環境建立的 Amazon Elastic Compute Cloud (Amazon EC2) 執行個體無法加入 ECS 叢集。當 CLIENT_ERROR 訊息出現時,AWS Batch 會自動終止 EC2 執行個體,然後將運算環境移至無效狀態。
如果運算環境處於「無效」狀態,請根據您收到的錯誤訊息選擇下列解決方法之一:
CLIENT_ERROR - 未授權執行 sts:AssumeRole完成修正無效的服務角色一節中的步驟。
CLIENT_ERROR - 參數: SpotFleetRequestConfig.IamFleetRole 無效
完成修正無效的 Spot 機群角色一節中的步驟。
CLIENT_ERROR - 指定的啟動範本 (範本 ID 為 [xxx]) 不存在
完成停用並刪除您的運算環境一節中的步驟。
CLIENT_ERROR - 拒絕存取
建立具有正確權限的服務角色或選擇具有正確權限的現有服務角色。
內部錯誤
完成先停用再啟用您的運算環境一節中的步驟。
INVALID CLIENT_ERROR - 空值
完成先停用再啟用您的運算環境一節中的步驟。
CLIENT_ERROR - 請求使用與先前相同的用戶端權杖,但不相同的請求
完成先停用再啟用您的運算環境一節中的步驟。
CLIENT_ERROR - 您無權使用啟動範本
檢查下列項目:
解決方法
修正無效的服務角色
1. 開啟 AWS Batch 主控台。
2. 在導覽窗格中,選擇運算環境。
3. 選擇處於「無效」狀態的運算環境。
注意:如果您的運算環境處於「已停用」狀態,請選擇啟用以啟用運算環境。
4. 選擇編輯。
5. 對於服務角色,請選擇具有讓 AWS Batch 調用其他 AWS 服務之所需權限的服務角色。
**重要:**您的服務角色會管理與服務搭配使用的資源。在使用服務之前,您必須擁有 AWS Identity and Access Management (IAM) 政策和為 AWS Batch 提供必要權限的角色。如果您沒有這類角色,則必須建立具有權限的服務角色。
6. 選擇儲存。
修正無效的 Spot 機群角色
對於使用 Amazon EC2 Spot 機群執行個體的受管運算環境,您必須建立一個角色以授予 Spot 機群下列權限:
- 對執行個體出價
- 啟動執行個體
- 標記執行個體
- 終止執行個體
如果您沒有 Spot 機群角色,請完成以下步驟為您的運算環境建立角色:
1. 開啟 IAM 主控台。
2. 在導覽窗格中,選擇角色。
3. 選擇建立角色。
4. 選擇 AWS 服務。然後,選擇 EC2 作為將使用您正在建立之角色的服務。
5. 在選取您的使用案例區段中,選擇 EC2 Spot 機群角色。
**重要:**請勿選擇類似於 EC2 - Spot 機群的名稱。
6. 選擇下一步: 權限。
7. 選擇下一步: 標籤。然後選擇下一步: 檢閱。
8. 對於角色名稱,輸入 AmazonEC2SpotFleetRole。
9. 選擇建立角色。
**注意:**使用新的 Spot 機群角色建立新的運算環境。現有的運算環境無法變更 Spot 機群角色。若要棄用過時的環境,請停用該環境,然後再將其刪除。
10. 開啟 AWS Batch 主控台。
11. 在導覽窗格中,選擇運算環境。
12. 選擇處於「無效」狀態的運算環境。然後,選擇停用。
13. 選擇刪除。
停用和刪除您的運算環境
您必須停用並刪除您的運算環境,因為與運算環境相關聯的啟動範本不存在。這表示您無法使用與啟動範本相關聯的運算環境。您必須刪除該運算環境,然後建立新的運算環境。
1. 開啟 AWS Batch 主控台。
2. 在導覽窗格中,選擇運算環境。
3. 選取處於「無效」狀態的運算環境。然後,選擇停用。
4. 選擇刪除。
5. 建立新的運算環境。
停用並啟用您的運算環境
1. 開啟 AWS Batch 主控台。
2. 在導覽窗格中,選擇運算環境。
3. 選擇處於「無效」狀態的運算環境。然後,選擇停用。
4. 從步驟 3 中選擇相同的運算環境。然後,選擇啟用。
相關資訊
疑難排解 AWS Batch
為什麼我的 Amazon ECS 或 Amazon EC2 執行個體無法加入叢集?
為什麼我的 AWS Batch 任務會停滯於「可執行」狀態?