INVALID
计算环境
您可能错误地配置了托管计算环境。如果是这样,计算环境就会进入INVALID
状态,无法接受作业放置。以下各节描述了可能的原因以及如何根据原因进行故障排除。
角色名称或 ARN 不正确
计算环境进入INVALID
状态的最常见原因是AWS Batch服务角色或 Amazon EC2 竞价型实例集角色的名称或 Amazon 资源名称(ARN)不正确。这种情况在使用AWS CLI或AWS SDK 创建的计算环境中更为常见。在AWS Management Console中创建计算环境时,AWS Batch可以帮助您选择正确的服务或竞价型实例集角色。但是,假设您手动输入了名称或 ARN,但输入不正确。然后,生成的计算环境也是INVALID
。
但是,假设在AWS CLI命令或 SDK 代码中手动输入 IAM 资源的名称或 ARN。在这种情况下,AWS Batch无法验证字符串。相反,AWS Batch必须接受坏值并尝试创造环境。如果AWS Batch创建环境失败,环境将进入INVALID
状态,并出现以下错误。
对于无效的服务角色:
CLIENT_ERROR - Not authorized to perform sts:AssumeRole (Service:
AWSSecurityTokenService; Status Code: 403; Error Code: AccessDenied; Request ID:
dc0e2d28-2e99-11e7-b372-7fcc6fb65fe7)
对于无效的竞价型实例集角色:
CLIENT_ERROR - Parameter: SpotFleetRequestConfig.IamFleetRole is invalid. (Service:
AmazonEC2; Status Code: 400; Error Code: InvalidSpotFleetRequestConfig; Request ID:
331205f0-5ae3-4cea-bac4-897769639f8d) Parameter: SpotFleetRequestConfig.IamFleetRole is
invalid
导致此问题的常见原因之一是以下情况。只能在使用AWS CLI或AWS SDK 时,指定一个 IAM 角色的名称,而不指定完整的 Amazon 资源名称(ARN)。根据创建角色的方式,ARN 可能包含aws-service-role
路径前缀。例如,如果使用使用 AWS Batch 的服务相关角色中的程序手动创建AWS Batch服务角色,服务角色 ARN 可能如下所示。
arn:aws:iam::123456789012
:role/AWSBatchServiceRole
但是,如果在控制台首次运行向导中创建了服务角色,则服务角色 ARN 可能如下所示。
arn:aws:iam::123456789012
:role/aws-service-role/AWSBatchServiceRole
如果将 AWS Batch 服务级别策略(AWSBatchServiceRole
)附加到非服务角色,也会出现此问题。例如,在这种情况下,可能会收到类似于以下内容的错误消息:
CLIENT_ERROR - User: arn:aws:sts::
account_number
:assumed-role/batch-replacement-role/aws-batch is not authorized to perform:action
on resource ...
要解决该问题,可以执行下列操作之一:
-
创建AWS Batch计算环境时,请为服务角色使用空字符串。
-
采用以下格式指定服务角色:
arn:aws:iam::
。account_number
:role/aws-service-role/batch.amazonaws.com/AWSServiceRoleForBatch
使用AWS CLI或AWS SDK 时,如果只指定 IAM 角色的名称,AWS Batch将假定 ARN 不使用aws-service-role
路径前缀。因此,我们建议在创建计算环境时为 IAM 角色指定完整 ARN。
要修复以这种方式错误配置的计算环境,请参阅修复 INVALID 计算环境。
修复 INVALID
计算环境
当拥有处于INVALID
状态的计算环境时,请更新它以修复无效参数。对于角色名称或 ARN 不正确,可以使用正确的服务角色更新计算环境。
修复配置错误的计算环境
-
打开AWS Batch控制台,地址:https://console.aws.amazon.com/batch/
。 -
从导航栏中,选择要使用的AWS 区域。
-
在导航窗格中,选择计算环境。
-
在计算环境页面上,选择要编辑的计算环境旁边的单选按钮,然后选择编辑。
-
在更新计算环境页面上,对于服务角色,请选择要用于计算环境的 IAM 角色。AWS Batch控制台仅显示与计算环境具有正确信任关系的角色。
-
选择保存以更新计算环境。