in src/main/resources/cdk_custom_resources/create_deployment_group.py [0:0]
def create_deployment_group(event, context):
data = {}
status = FAILED
deployment_group_name_ = None
try:
application_name_ = event['ResourceProperties']['ApplicationName']
deployment_group_name_ = event['ResourceProperties']['DeploymentGroupName']
deployment_config_name_ = event['ResourceProperties']['DeploymentConfigName']
service_role_arn_ = event['ResourceProperties']['ServiceRoleArn']
blue_target_group_ = event['ResourceProperties']['BlueTargetGroup']
green_target_group_ = event['ResourceProperties']['GreenTargetGroup']
prod_listener_arn_ = event['ResourceProperties']['ProdListenerArn']
test_listener_arn_ = event['ResourceProperties']['TestListenerArn']
cluster_name_ = event['ResourceProperties']['EcsClusterName']
service_name_ = event['ResourceProperties']['EcsServiceName']
termination_wait_time = event['ResourceProperties']['TerminationWaitTime']
client.create_deployment_group(
applicationName=application_name_,
deploymentGroupName=deployment_group_name_,
deploymentConfigName=deployment_config_name_,
serviceRoleArn=service_role_arn_,
deploymentStyle={
'deploymentType': 'BLUE_GREEN',
'deploymentOption': 'WITH_TRAFFIC_CONTROL'
},
blueGreenDeploymentConfiguration={
'terminateBlueInstancesOnDeploymentSuccess': {
'action': 'TERMINATE',
'terminationWaitTimeInMinutes': int(termination_wait_time)
},
'deploymentReadyOption': {
'actionOnTimeout': 'CONTINUE_DEPLOYMENT'
}
},
autoRollbackConfiguration={
'enabled': True,
'events': [
'DEPLOYMENT_FAILURE',
'DEPLOYMENT_STOP_ON_REQUEST',
'DEPLOYMENT_STOP_ON_ALARM'
]
},
ecsServices=[
{
'serviceName': service_name_,
'clusterName': cluster_name_
},
],
loadBalancerInfo={
'targetGroupPairInfoList': [
{
'targetGroups': [
{
'name': blue_target_group_
},
{
'name': green_target_group_
}
],
'prodTrafficRoute': {
'listenerArns': [
prod_listener_arn_
]
},
'testTrafficRoute': {
'listenerArns': [
test_listener_arn_
]
}
},
]
}
)
data = {
"event": "Resource created",
"deploymentGroupName": deployment_group_name_
}
status = SUCCESS
except BaseException as e:
raise e
finally:
send(event=event,
context=context,
physical_resource_id=deployment_group_name_,
response_status=status,
response_data=data)