繁体   English   中英

ECS从EC2迁移到Fargate

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM