[英]ECS migration from EC2 to Fargate
我正在尝试从Amaxon ECS EC2迁移到Fargate。 在这里,我根据https://aws.amazon.com/blogs/compute/migrating-your-amazon-ecs-containers-to-aws-fargate/的建议进行了一些更改。 我正在使用amazon cloudformation来创建/更新资源。
ECSTaskDefinition:
Type: AWS::ECS::TaskDefinition
Properties:
Family : !Join ["_", [!Ref "AppName", !Ref "ComponentName", !Ref "TargetEnv" ]]
NetworkMode: "awsvpc"
ExecutionRoleArn: arn:aws:iam::${AWS::AccountId}:role/ecsTaskExecutionRole
TaskRoleArn:
Fn::Sub:
[
"arn:aws:iam::${AWS::AccountId}:role/exec_dp_${TargetEnv}",
{
TargetEnv: !Ref "TargetEnv"
}
]
RequiresCompatibilities:
- "FARGATE"
Memory: "512"
Cpu: '256'
ContainerDefinitions:
这里的问题是当我尝试创建堆栈时,它给出了如下错误:
无法承担服务链接角色。 请验证ECS服务链接角色是否存在
我也尝试过创建服务链接角色,如下所示:
AwsEcsTaskExecutionRole:
Type: AWS::IAM::Role
Properties:
Path: /
AssumeRolePolicyDocument:
Version: 2012-10-17
Statement:
- Effect: Allow
Principal:
Service: ecs.amazonaws.com
Action: sts:AssumeRole
ManagedPolicyArns:
- arn:aws:iam::aws:policy/aws-service-role/AmazonECSServiceRolePolicy
然后将其指定为ExecutionRoleArn:!GetAtt AwsEcsTaskExecutionRole.Arn
它不起作用。 任何方向都会有所帮助。
简短回答:
运行以下命令: aws iam create-service-linked-role --aws-service-name ecs.amazonaws.com
答案很长:
AWS引入了服务链接角色 。 对于旧的AWS账户,或者您从未在控制台中手动创建ECS集群,您必须运行上面的命令才能创建角色。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.