【发布时间】:2021-09-16 15:09:28
【问题描述】:
AWS CloudFormation 是否支持 EC2 的蓝/绿部署? 我能够使用 CodeDeploy for EC2 创建蓝/绿部署;但是,我不知道如何使用 CloudFormation 创建一个。 CloudFormation 似乎支持 ECS (https://aws.amazon.com/about-aws/whats-new/2020/05/aws-cloudformation-now-supports-blue-green-deployments-for-amazon-ecs/) 和 Lambda 函数的蓝/绿部署。
模板的 CodeDeploy 部分如下所示:
Type: AWS::CodeDeploy::DeploymentGroup
Properties:
DeploymentGroupName: 'SampleGroupName'
ServiceRoleArn: !Sub 'arn:aws:iam::${AWS::AccountId}:role/AzureDevOps/CodeDeployOperations'
ApplicationName: !Ref CodeDeployApplication
AutoScalingGroups:
- !Ref SampleASG
DeploymentStyle:
DeploymentType: BLUE_GREEN
DeploymentOption: WITH_TRAFFIC_CONTROL
BlueGreenDeploymentConfiguration:
TerminateBlueInstancesOnDeploymentSuccess:
Action: TERMINATE
TerminationWaitTimeInMinutes: 5
DeploymentReadyOption:
ActionOnTimeout: CONTINUE_DEPLOYMENT
GreenFleetProvisioningOption:
Action: COPY_AUTO_SCALING_GROUP
DeploymentConfigName: !If [IsProdStaging, CodeDeployDefault.HalfAtATime, CodeDeployDefault.AllAtOnce]
LoadBalancerInfo:
TargetGroupInfoList:
- Name: !GetAtt SampleTargetGroup.TargetGroupName
AutoRollbackConfiguration:
Enabled: true
Events:
- DEPLOYMENT_FAILURE
【问题讨论】:
-
您的 CloudFormation 模板是什么?为什么它不起作用?
-
谢谢@Marcin 我已经更新了描述以包含 CF 模板的 Codedeploy 部分。该问题似乎与 AutoScaling 有关。
-
您必须准确解释您的代码有什么问题?有任何错误信息吗?
-
@Marcin 我联系了 AWS Support 团队,AWS Cloudformation 目前似乎不支持 EC2 的蓝/绿部署。感谢您的帮助。
-
@pimir 谢谢,在找到这个之前,我已经花了很长时间寻找解决方案。您是否找到任何解决方法,或者只是使用 In Place 设置模板,然后在控制台中手动将其更改为蓝绿色?
标签: amazon-web-services amazon-ec2 build amazon-cloudformation devops