Как ссылаться на `AWS :: CodeDeploy :: DeploymentGroup :: LoadBalancerInfo?` - PullRequest
0 голосов
/ 05 февраля 2020

Я пытаюсь связать мои LoadBalancer и TargetGroup с DeploymentGroup, когда я запускаю шаблон, который говорит «Свойство LoadBalancerInfo не может быть указано». вот снимок моего шаблона. мой шаблон правильный?

EC2TargetGroup:
 Type: AWS::ElasticLoadBalancingV2::TargetGroup
 Properties:
   HealthCheckIntervalSeconds: 30
   HealthCheckProtocol: HTTP
   HealthCheckTimeoutSeconds: 15
   HealthyThresholdCount: 5
   Matcher:
     HttpCode: '200'
   Name: !Ref EC2TargetGroupName
   Port: 80
   Protocol: HTTP
   TargetGroupAttributes:
   - Key: deregistration_delay.timeout_seconds
     Value: '20'
   UnhealthyThresholdCount: 3
   VpcId: !Ref VPC

ApplicationLoadBalancer:
 Type: AWS::ElasticLoadBalancingV2::LoadBalancer
 Properties:
   Scheme: internet-facing
   SecurityGroups:
   - Ref: ELBSecurityGroup
   Subnets: !Ref Subnets

myAutoScalingGroup:
 Type: AWS::AutoScaling::AutoScalingGroup
 Properties:
  AutoScalingGroupName: !Ref ScalingGroupName
  MinSize: "1"
  MaxSize: !Ref MaxSize
  HealthCheckGracePeriod: 300
  LaunchTemplate:
    LaunchTemplateId: !Ref launchTemplate
    Version: !GetAtt launchTemplate.LatestVersionNumber

MyDeploymentGroup:
 Type: AWS::CodeDeploy::DeploymentGroup
 Properties:
  ApplicationName: !Ref ApplicationName
  DeploymentConfigName: CodeDeployDefault.AllAtOnce
  ServiceRoleArn: !GetAtt [PipelineRole, Arn]
  LoadBalancerInfo:
    TargetGroupInfoList:
      - Name: !Ref EC2TargetGroupName ############  ERROR ######
  DeploymentStyle:
    DeploymentType: BLUE_GREEN
    DeploymentOption: WITH_TRAFFIC_CONTROL

1 Ответ

0 голосов
/ 05 февраля 2020

К сожалению, в настоящий момент CodeDeploy в CloudFormation поддерживает только развертывания Blue / Green на платформе Lambda, однако конфигурация развертывания «CodeDeployDefault.AllAtOnce» в вашем шаблоне предназначена для платформы EC2.

Причина для платформы EC2 еще не поддерживается в CloudFormation, потому что Blue / Green CodeDeploy Deployments принципиально расходятся с управлением ресурсами, выполняемым CloudFormation. По своей сути, функция Blue / Green в CodeDeploy раскручивает группы автоматического масштабирования от имени клиента путем клонирования существующих ASG, а после завершения и стабилизации развертывания удаляет исходную ASG. Этот вид внеполосного создания / удаления - это то, что в корне противоречит основной функции CloudFormation, где все операции с ресурсами происходят из самой CloudFormation.

В качестве обходного пути я рекомендую вам взглянуть на это сообщение в блоге и связанный с ним пример того, как настроить развертывание Blue / Green с помощью CodeDeploy [1, 2].

[1] https://aws.amazon.com/blogs/devops/performing-bluegreen-deployments-with-aws-codedeploy-and-auto-scaling-groups/

[2] https://github.com/awslabs/codedeploy-blue-green

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...