You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用CloudFormation创建关联ECR与负载均衡的Fargate类型ECS服务时出现IAM角色参数错误的问题求助

解决ECS Fargate服务CloudFormation部署的InvalidParameterException错误

问题分析

你碰到的这个错误提示其实已经把原因说透了:You cannot specify an IAM role for services that require a service linked role。核心问题在于,Fargate启动类型的ECS服务会自动使用AWS托管的服务关联角色(AWSServiceRoleForECS),根本不需要你手动在Role参数里指定这个角色。当你强行给这类依赖服务关联角色的服务设置自定义Role属性时,就会触发这个400参数错误。

解决方案

直接从你的ECS服务资源定义里删掉Role那一行就行,修改后的完整资源块如下:

service:
  Type: AWS::ECS::Service
  DependsOn: ALBListenerHttps
  Properties:
    Cluster: !Ref 'ECSCluster'
    DesiredCount: '1'
    LaunchType: FARGATE
    LoadBalancers:
      - ContainerName: !Sub ${Environment}-${Name}
        ContainerPort: '3000'
        TargetGroupArn: !Ref 'ECSTG'
    TaskDefinition: !Ref 'taskdefinition'
    NetworkConfiguration:
      AwsvpcConfiguration:
        AssignPublicIp: 'ENABLED'
        Subnets: !Ref 'SubnetId'

补充说明

  • 服务关联角色(AWSServiceRoleForECS)是AWS为ECS自动创建和维护的,专门用于让ECS服务代表你完成一些必要操作(比如和负载均衡器交互、管理任务生命周期等)。
  • 只有当你使用EC2启动类型的ECS服务,且需要自定义服务角色来实现特定功能(比如自动扩展ECS实例)时,才需要手动指定Role参数。Fargate场景下完全不需要这个配置。

内容的提问来源于stack exchange,提问作者Marcus Lagerstedt

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.30 07:02:50