gpt4 book ai didi

amazon-web-services - AWS Batch CLIENT_ERROR IamInstanceProfile 无效

转载 作者:行者123 更新时间:2023-12-04 16:50:53 24 4
gpt4 key购买 nike

最初将此发布到 ServerFault,但在这里发布是希望有人可能遇到我的问题。

我正在尝试设置一个容器以在 AWS Batch 上运行。我没有做任何花哨的事情,或多或少只是遵循所有内容的默认设置。我收到似乎与实例角色或与实例角色关联的权限有关的错误。

设置一开始没有任何障碍。我先设置计算环境,然后设置队列,然后将基本作业添加到队列中。作业最终陷入可运行状态,然后在 20 分钟左右后,我的计算环境变为“无效”并显示以下错误:

CLIENT_ERROR - Invalid IamInstanceProfile: arn:aws:iam::001234567890:role/ecsInstanceRole (Service: AmazonAutoScaling; Status Code: 400; Error Code: ValidationError; Request ID: blah)

我读了 this troubleshooting guide ,它似乎解决了相关问题(尽管它们并不完全匹配)。我已经尝试重新创建环境 5 或 6 次,但没有成功。我还尝试删除我现有的角色并让经理重新创建它们。故障排除指南中的大多数问题似乎源于在 AWS CLI 中错误设置的角色或通过一些非 Batch 控制台需求。该指南甚至写道“AWS Batch 控制台仅显示与计算环境具有正确信任关系的角色”。但是我使用的所有角色都是通过控制台选择的,这似乎意味着它们得到了正确的许可。

不知道在这里做什么,感谢您的帮助。

最佳答案

有点令人困惑的是,AWS Batch Compute Environment 的 instanceRole 属性必须引用 IAM 实例配置文件 ARN 而不是 IAM 角色 ARN。也就是说, instanceRole 值应该看起来像 arn:aws:iam::123456789012:instance-profile/ecsInstanceRole 而不是 arn:aws:iam::123456789012:role/ecsInstanceRole 。不过,错误消息实际上提到了实例配置文件。

以下 CloudFormation 片段创建了一个有效的 Batch 计算环境:

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

关于amazon-web-services - AWS Batch CLIENT_ERROR IamInstanceProfile 无效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46265278/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com