如何修复 AWS Batch 中的无效计算环境?
上次更新时间:2019 年 11 月 21 日
我在 AWS Batch 中的计算环境状态为无效。如何解决此问题?
简短描述
当计算环境的配置错误时,它将处于无效状态。无效的计算环境无法运行作业或被删除。
如果您的计算环境处于无效状态,根据您收到的错误消息选择以下一个解决办法:
- 如果您收到 "CLIENT_ERROR - Not authorized to perform sts:AssumeRole (Service: AWSSecurityTokenService; Status Code: 403; Error Code: AccessDenied; Request ID: dc0e2d28-2e99-11e7-b372-7fcc6fb65fe7)" 消息,完成修复无效服务角色部分的步骤。
- 如果您收到 "Error message - CLIENT_ERROR - Parameter: SpotFleetRequestConfig.IamFleetRole is invalid.(Service: AmazonEC2; Status Code: 400; Error Code: InvalidSpotFleetRequestConfig; Request ID: Parameter: SpotFleetRequestConfig.IamFleetRole is invalid)" 消息,完成修复无效 Spot 队列角色部分的步骤。
- 如果您收到 "CLIENT_ERROR - The specified launch template, with template ID lt-1234ab56789cd, does not exist" 消息,完成禁用并删除您的计算环境部分的步骤。
- 对于 "CLIENT_ERROR - Access denied" 消息,创建拥有正确权限的服务角色,或选择拥有正确权限的现有服务角色。
- 如果您收到 "Internal Error" 消息,则完成禁用,然后启用您的计算环境部分的步骤。
- 如果您收到 "INVALID CLIENT_ERROR - null (Service: AWSLogs; Status Code: 503; Error Code: null; Request ID: null)" 消息,则完成禁用,然后启用您的计算环境部分的步骤。
- 如果您收到 "CLIENT_ERROR - The request uses the same client token as previous, but non-identical request" 消息,则完成禁用,然后启用您的计算环境部分的步骤。
解决方法
修复无效的服务角色
- 打开 AWS Batch 控制台。
- 在导航窗格中,选择计算环境。
- 选择处于无效状态的计算环境。
注:如果您的计算环境处于已禁用状态,选择启用以启用您的计算环境。 - 选择编辑。
- 针对服务角色,选择拥有 AWS Batch 调用其他 AWS 服务所需必要权限的服务角色。
重要提示:您的服务角色管理您通过该服务使用的资源。在使用服务前,您必须有为 AWS Batch 提供必要权限的 AWS Identity and Access Management (IAM) 策略和角色。如果没有,您必须创建拥有相关权限的服务角色。 - 选择保存。
修复无效的 Spot 队列角色
若创建使用 Amazon EC2 Spot 队列实例的托管计算环境,则您必须创建角色,由它赋予 Spot 队列代表您出价、启动、添加标签和终止实例的权限。
如果您没有 Spot 队列角色,完成以下步骤,以便为您的计算环境创建一个:
- 打开 IAM 控制台。
- 在导航窗格中,选择角色。
- 选择创建角色。
- 选择 AWS 服务,然后选择 EC2 作为将使用您所创建角色的服务。
- 在选择您的用例部分,选择 EC2 Spot 队列角色。
重要提示:注意不要选择名称相似的 EC2 – Spot 队列。 - 选择下一步:权限。
- 选择下一步:添加标签,然后选择下一步:检查。
- 在角色名称中输入 AmazonEC2SpotFleetRole。
- 选择创建角色。
注:使用您的新 Spot 队列角色来创建新的计算环境。现有计算环境无法更改 Spot 队列角色。要终止过时的环境,禁用并删除该环境。 - 打开 AWS Batch 控制台。
- 在导航窗格中,选择计算环境。
- 选择处于无效状态的计算环境,然后选择禁用。
- 选择删除。
禁用并删除您的计算环境
您必须禁用并删除您的计算环境,因为与您的计算环境关联的启动模板并不存在。这意味着您无法使用与您的启动模板关联的计算环境。您必须删除计算环境,然后创建新的计算环境。
- 打开 AWS Batch 控制台。
- 在导航窗格中,选择计算环境。
- 选择处于无效状态的计算环境,然后选择禁用。
- 选择删除。
- 创建新的计算环境。
禁用,然后启用您的计算环境
- 打开 AWS Batch 控制台。
- 在导航窗格中,选择计算环境。
- 选择处于无效状态的计算环境,然后选择禁用。
- 从第 3 步选择相同的计算环境,然后选择启用。