Ale*_*off 4 amazon-ec2 amazon-web-services amazon-ecs
最初发布到ServerFault,但发布在这里希望有人可能遇到我的问题.
我正在尝试设置一个在AWS Batch上运行的容器.我没有做任何花哨的事情,或多或少只是遵循默认设置的一切.我收到的错误似乎与实例角色或与实例角色关联的权限有关.
设置起初没有问题.我设置了我的计算环境,然后是我的队列,然后我将一个基本作业添加到队列中.作业最终陷入可运行状态,然后在20分钟左右后,我的计算环境变为"INVALID",出现此错误:
CLIENT_ERROR - Invalid IamInstanceProfile: arn:aws:iam::001234567890:role/ecsInstanceRole (Service: AmazonAutoScaling; Status Code: 400; Error Code: ValidationError; Request ID: blah)
Run Code Online (Sandbox Code Playgroud)
我阅读了这个故障排除指南,它似乎解决了相关问题(尽管它们并不完全匹配).我尝试过5到6次重复环境,没有运气.我也尝试删除现有角色并让管理员重新创建它们.故障排除指南中的大多数问题似乎源于在AWS CLI中错误设置的角色或某些非批处理控制台需求.该指南甚至会读到"AWS Batch控制台仅显示对计算环境具有正确信任关系的角色".但是我使用的所有角色都是通过控制台选择的,这似乎意味着他们得到了正确的许可.
不知道该怎么做,感谢任何帮助.
有点令人困惑的是instanceRole,AWS Batch Compute Environment 的属性必须引用IAM 实例配置文件 ARN而不是IAM 角色 ARN.也就是说,instanceRole值应该看起来arn:aws:iam::123456789012:instance-profile/ecsInstanceRole而不是arn:aws:iam::123456789012:role/ecsInstanceRole.但是,错误消息实际上提到了实例配置文件.
以下CloudFormation代码段创建了有效的批处理计算环境:
Parameters:
VPC:
Type: String
Description: VPC ID of the target VPC
Subnet:
Type: List<AWS::EC2::Subnet::Id>
Description: VPC subnet(s) for batch instances
SG:
Type: List<AWS::EC2::SecurityGroup::Id>
Description: VPC Security group ID(s) for batch instances
Resources:
MyBatchEnvironment:
Type: "AWS::Batch::ComputeEnvironment"
Properties:
Type: MANAGED
ServiceRole: !GetAtt MyBatchEnvironmentRole.Arn
ComputeResources:
MaxvCpus: 8
SecurityGroupIds: !Ref SG
Subnets: !Ref Subnet
InstanceRole: !GetAtt MyBatchInstanceProfile.Arn
MinvCpus: 0
DesiredvCpus: 0
Type: EC2
InstanceTypes:
- optimal
MyBatchEnvironmentRole:
Type: "AWS::IAM::Role"
Properties:
AssumeRolePolicyDocument:
Version: '2012-10-17'
Statement:
- Effect: Allow
Principal: {Service: "batch.amazonaws.com"}
Action: "sts:AssumeRole"
Path: /service-role/
ManagedPolicyArns:
- "arn:aws:iam::aws:policy/service-role/AWSBatchServiceRole"
MyBatchInstanceRole:
Type: "AWS::IAM::Role"
Properties:
AssumeRolePolicyDocument:
Version: '2012-10-17'
Statement:
- Effect: Allow
Principal: {Service: "ec2.amazonaws.com"}
Action: "sts:AssumeRole"
Path: /
ManagedPolicyArns:
- "arn:aws:iam::aws:policy/service-role/AmazonEC2ContainerServiceforEC2Role"
MyBatchInstanceProfile:
Type: "AWS::IAM::InstanceProfile"
Properties:
Path: "/"
Roles:
- !Ref MyBatchInstanceRole
Run Code Online (Sandbox Code Playgroud)
小智 1
谢谢你让我们注意到这一点。我们已经解决了此问题的根本原因,控制台现在应该可以按预期工作。请再试一次,如果您遇到任何其他错误,请告诉我们。
AWS Batch 团队的 Jamie
| 归档时间: |
|
| 查看次数: |
2008 次 |
| 最近记录: |