我在 AWS Batch 中的计算环境处于“无效”状态,并且收到了 "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 控制台。
- 在导航窗格中,选择 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) 竞价型实例集,则可能会收到 "CLIENT_ERROR - Parameter: SpotFleetRequestConfig.IamFleetRole is invalid" 错误消息。
对于使用竞价型实例集的托管计算环境,请创建一个可授予使用竞价型实例集所需权限的角色。对于一般用途,请将 AmazonEC2SpotFleetTaggingRole AWS 托管式策略添加到该角色中。
**注意:**使用您新建的竞价型实例集角色来创建新的计算环境。现有计算环境无法更改竞价型实例集角色。要移除不再需要的现有环境,请先停用该环境,然后将其删除。有关说明,请继续阅读下一部分。
"CLIENT_ERROR - The specified launch template...does not exist" 错误
如果您与计算环境关联的启动模板不存在,则会收到以下错误消息:
"CLIENT_ERROR - The specified launch template, with template ID [###], does not exist"
要对此问题进行故障排除,请完成以下步骤以停用并删除您的计算环境:
- 打开 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 会将计算环境标记为 INVALID(无效)。当实例上的 Amazon ECS 代理未在既定时间范围内调用 RegisterContainerInstanc API 时,就会发生这种情况。作为响应,AWS Batch 会终止该实例,并且您会收到以下错误:
"CLIENT_ERROR - Your compute environment has been INVALIDATED and scaled down" because none of the instances joined the underlying ECS Cluster."
在以下场景中,您的实例无法加入 Amazon ECS 集群:
- Amazon Virtual Private Cloud (Amazon VPC) 子网配置设置阻止了与 Amazon ECS 的成功通信。
- 不正确的实例配置文件策略设置阻止了对 Amazon ECS 的授权。
- 自定义亚马逊机器映像 (AMI) 或启动模板配置影响了 Amazon ECS 代理。
要对此问题进行故障排除,请完成以下步骤:
- 打开 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" 错误,请执行以下操作:
要进一步排查 IAM 策略问题,请参阅如何使用 IAM 策略对访问遭拒或未经授权的操作错误进行故障排除?
相关信息
对 AWS Batch 进行故障排除
为什么我的 AWS Batch 作业卡滞在“可运行”状态?