我在 AWS Batch 中的计算环境处于“无效”状态。如何排查此错误?
简短描述
您收到错误消息:“CLIENT_ERROR – 您的计算环境已 INVALIDATED 且已缩减,因为没有任何实例加入底层 ECS 集群。阻止实例加入的常见问题有:VPC/子网配置阻止与 ECS 通信,实例配置文件策略不正确,阻止了对 ECS 的授权,或者自定义 AMI 或 LaunchTemplate 配置影响了 ECS 座席。”
阻止您的实例加入 Amazon Elastic Container Service (Amazon ECS) 集群的问题包括:
- Amazon Virtual Private Cloud (Amazon VPC) 子网配置设置阻止了与 Amazon ECS 的成功通信。
- 实例配置文件策略中存在错误设置,阻止了对 Amazon ECS 的授权。
- 影响 ECS 座席的自定义亚马逊云机器镜像(AMI)或启动模板配置。
CLIENT_ERROR 消息表示由 AWS Batch 计算环境创建的 Amazon Elastic Compute Cloud (Amazon EC2) 实例未能加入 ECS 集群。当出现 CLIENT_ERROR 消息时,AWS Batch 会自动终止 EC2 实例,然后将计算环境移至 INVALID 状态。
如果您的计算环境处于“无效”状态,请根据您收到的错误消息选择以下其中一种解决办法:
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 和自动扩缩组相关的权限。然后,完成修复无效的服务角色部分。
- 查看您的账户是否属于 AWS Organizations,以及服务控制策略是否正在阻止访问您的 Amazon EC2 权限。然后,如果需要,更新任何服务控制策略。
解决方法
修复无效的服务角色
1. 打开AWS Batch 控制台。
2. 在导航窗格中,选择计算环境。
3. 选择处于“无效”状态的计算环境。
注:如果您的计算环境处于已禁用状态,选择启用以激活您的计算环境。
4. 选择 Edit (编辑)。
5. 针对服务角色,选择拥有 AWS Batch 调用其他 AWS 服务所需必要权限的服务角色。
**重要提示:**您的服务角色管理您通过该服务使用的资源。在使用服务前,您必须有为 AWS Batch 提供必要权限的 AWS Identity and Access Management (IAM) 策略和角色。如果没有,您必须创建拥有相关权限的服务角色。
6. 选择保存。
修复无效的 Spot 队列角色
对于使用 Amazon EC2 Spot 队列实例的托管计算环境,您必须创建角色,向 Spot 队列授予以下权限:
如果您没有 Spot 队列角色,完成以下步骤,以便为您的计算环境创建一个角色:
1. 打开 IAM console(IAM 控制台)。
2. 在导航窗格中,选择角色。
3. 选择 Create Role(创建角色)。
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 作业为什么卡在 RUNNABLE 状态?