Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon web services 如何引用'AWS::CodeDeploy::DeploymentGroup::LoadBalancerInfo'`_Amazon Web Services_Amazon Cloudformation_Aws Code Deploy_Aws Auto Scaling - Fatal编程技术网

Amazon web services 如何引用'AWS::CodeDeploy::DeploymentGroup::LoadBalancerInfo'`

Amazon web services 如何引用'AWS::CodeDeploy::DeploymentGroup::LoadBalancerInfo'`,amazon-web-services,amazon-cloudformation,aws-code-deploy,aws-auto-scaling,Amazon Web Services,Amazon Cloudformation,Aws Code Deploy,Aws Auto Scaling,我正在尝试将我的LoadBalancer和TargetGroup与DeploymentGroup链接,当我运行模板时,它会显示“无法指定属性LoadBalancerInfo”。这是我的模板的快照。我的模板正确吗 EC2TargetGroup: Type: AWS::ElasticLoadBalancingV2::TargetGroup Properties: HealthCheckIntervalSeconds: 30 HealthCheckProtocol: HTTP H

我正在尝试将我的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

不幸的是,目前CloudFormation中的CodeDeploy仅支持Lambda平台上的蓝色/绿色部署,但是模板中的部署配置“CodeDeployDefault.AllAtOnce”是针对EC2平台的

CloudFormation中还不支持EC2平台的原因是蓝/绿CodeDeploy部署从根本上与CloudFormation执行的资源管理不一致。其核心是,CodeDeploy中的蓝色/绿色功能将通过克隆现有ASG来代表客户加速自动扩展组,一旦部署完成并稳定,它将删除源ASG。这种带外创建/删除从根本上违背了CloudFormation的核心功能,因为所有资源操作都源自CloudFormation本身

作为一种解决方法,我建议您看看这篇博文和相关示例,了解如何使用CodeDeploy[1,2]设置蓝色/绿色部署

[1]


[2]

谢谢@shariqmaws。我觉得这有点奇怪,因为当我们手动执行时,它允许我们选择蓝色/绿色部署类型