Amazon web services 如何引用'AWS::CodeDeploy::DeploymentGroup::LoadBalancerInfo'`
我正在尝试将我的LoadBalancer和TargetGroup与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
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。我觉得这有点奇怪,因为当我们手动执行时,它允许我们选择蓝色/绿色部署类型