Amazon web services ECS从EC2迁移到Fargate
我正在尝试从Amaxon ECS EC2迁移到Fargate。在这里,我根据来自的建议做了一些更改。我正在使用amazon cloudformation创建/更新资源Amazon web services ECS从EC2迁移到Fargate,amazon-web-services,amazon-cloudformation,aws-fargate,Amazon Web Services,Amazon Cloudformation,Aws Fargate,我正在尝试从Amaxon ECS EC2迁移到Fargate。在这里,我根据来自的建议做了一些更改。我正在使用amazon cloudformation创建/更新资源 ECSTaskDefinition: Type: AWS::ECS::TaskDefinition Properties: Family : !Join ["_", [!Ref "AppName", !Ref "ComponentName", !Ref "TargetEnv" ]]
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
然后指定为
刽子手学习:!GetAtt awsecstaskeexecutionrole.Arn
它不起作用。任何有关的指导都会很有帮助。简短回答:
运行此命令:aws iam创建服务链接角色--aws服务名称ecs.amazonaws.com
长答覆:
美国焊接学会介绍。对于旧的AWS帐户,或者如果您从未在控制台中手动创建过ECS群集,则必须运行上面的命令才能创建角色。有没有办法使用cloudFormation实现这一点?我考虑过使用CustomResource创建/删除服务链接角色,但这是整个帐户的唯一角色(不分地区)。这意味着,如果您删除创建角色的堆栈,它将对您帐户中的其他堆栈产生潜在影响。在AWS中,某些事情无法自动执行,例如增加服务限制的支持请求。这对于新AWS帐户应该是固定的,但同时我建议您只运行命令和文档w您好。感谢您的快速输入。这里我们的人员希望完全控制IAM。如果您可以使用有关此的cloudFormation信息的链接更新您的答案,那么这将是一件很棒的事情。