部署组的ECS服务必须配置为CODE_DEPLOY部署控制器。

21

在尝试为CodeDeploy中的ECS集群创建部署组时,我遇到了以下错误。我已经创建了基于CodeDeploy ECS的IAM,并使用其策略:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Action": [
                "ecs:DescribeServices",
                "ecs:CreateTaskSet",
                "ecs:UpdateServicePrimaryTaskSet",
                "ecs:DeleteTaskSet",
                "elasticloadbalancing:DescribeTargetGroups",
                "elasticloadbalancing:DescribeListeners",
                "elasticloadbalancing:ModifyListener",
                "elasticloadbalancing:DescribeRules",
                "elasticloadbalancing:ModifyRule",
                "lambda:InvokeFunction",
                "cloudwatch:DescribeAlarms",
                "sns:Publish",
                "s3:GetObject",
                "s3:GetObjectMetadata",
                "s3:GetObjectVersion"
            ],
            "Resource": "*",
            "Effect": "Allow"
        },
        {
            "Action": [
                "iam:PassRole"
            ],
            "Effect": "Allow",
            "Resource": "*",
            "Condition": {
                "StringLike": {
                    "iam:PassedToService": [
                        "ecs-tasks.amazonaws.com"
                    ]
                }
            }
        }
    ]
}

请告诉我何时犯了错误?

在此输入图片描述

2个回答

20
如果您正在使用 CodeDeploy,则必须定义您的 ECS 服务,以便它使用 蓝/绿 代码部署而不是 滚动更新

AWS 管理控制台 > ECS > 创建服务的快照

希望对您有所帮助!


5
我已经使用 CloudFormation 模板创建了我的 ECS 服务。在 CloudFormation 中没有属性可以指定使用蓝/绿部署模型。我正在遵循一个线程 https://dev59.com/sLHma4cB1Zd3GeqPJEnc 它说目前还没有在 CloudFormation 中添加这个功能。 - kk.

11

如果您正在使用terraform,则可以通过将以下内容添加到aws_ecs_service来轻松解决此问题:

  deployment_controller {
      type = "CODE_DEPLOY"
  }

如何从控制台进行此操作? - Nilesh

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接