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

2 分钟阅读
0

我在 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 状态?

相关视频

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