如何修复 AWS Batch 中无效的计算环境?

上次更新时间:2021 年 3 月 16 日

我在 AWS Batch 中的计算环境处于“无效”状态。如何排查此错误?

简短描述

当计算环境的配置错误时,它将处于“无效”状态。无效的计算环境将无法运行作业或删除。

如果您的计算环境处于“无效”状态,请根据您收到的错误消息选择以下其中一种解决办法:

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 (Amazon EC2) 和 Auto Scaling 组相关的权限。然后,完成修复无效的服务角色部分。
  • 查看您的账户是否属于 AWS Organizations,以及服务控制策略是否正在阻止访问您的 Amazon EC2 权限。然后,如果需要,更新任何服务控制策略。

解决方法

修复无效的服务角色

1.    打开 AWS Batch 控制台

2.    在导航窗格中,选择计算环境

3.    选择处于“无效”状态的计算环境。
注:如果您的计算环境处于已禁用状态,选择启用以激活您的计算环境。

4.    选择编辑

5.    针对服务角色,选择拥有 AWS Batch 调用其他 AWS 服务所需必要权限的服务角色。
重要提示:您的服务角色管理您通过该服务使用的资源。在使用服务前,您必须有为 AWS Batch 提供必要权限的 AWS Identity and Access Management (IAM) 策略和角色。如果没有,您必须创建拥有相关权限的服务角色

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 步中相同的计算环境。然后选择启用


这篇文章对您有帮助吗?


您是否需要账单或技术支持?