如何修正 AWS Batch 中無效的運算環境?

2 分的閱讀內容
0

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 - 您無權使用啟動範本
檢查下列項目:

  • 檢閱您的服務角色,查看是否授予了與 Amazon Elastic Compute Cloud 和 Auto Scaling 群組相關的權限。然後,完成修正無效的服務角色一節中的步驟。
  • 檢閱您的帳戶是否屬於 AWS Organizations,以及是否有任何服務控制政策阻止存取 Amazon EC2 權限。然後,視需要更新任何服務控制政策。

解決方法

修正無效的服務角色

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 任務會停滯於「可執行」狀態?

AWS 官方
AWS 官方已更新 2 年前