EcsBlueGreenDeploymentConfig

class aws_cdk.aws_codedeploy.EcsBlueGreenDeploymentConfig(*, blue_target_group, green_target_group, listener, deployment_approval_wait_time=None, termination_wait_time=None, test_listener=None)

Bases: object

Specify how the deployment behaves and how traffic is routed to the ECS service during a blue-green ECS deployment.

Parameters:
  • blue_target_group (ITargetGroup) – The target group that will be associated with the ‘blue’ ECS task set during a blue-green deployment.

  • green_target_group (ITargetGroup) – The target group that will be associated with the ‘green’ ECS task set during a blue-green deployment.

  • listener (IListener) – The load balancer listener used to serve production traffic and to shift production traffic from the ‘blue’ ECS task set to the ‘green’ ECS task set during a blue-green deployment.

  • deployment_approval_wait_time (Optional[Duration]) – Specify how long CodeDeploy waits for approval to continue a blue-green deployment before it stops the deployment. After provisioning the ‘green’ ECS task set and re-routing test traffic, CodeDeploy can wait for approval before continuing the deployment and re-routing production traffic. During this wait time, validation such as manual testing or running integration tests can occur using the test traffic port, prior to exposing the new ‘green’ task set to production traffic. To approve the deployment, validation steps use the CodeDeploy [ContinueDeployment API(https://docs.aws.amazon.com/codedeploy/latest/APIReference/API_ContinueDeployment.html). If the ContinueDeployment API is not called within the wait time period, CodeDeploy will stop the deployment. By default, CodeDeploy will not wait for deployment approval. After re-routing test traffic to the ‘green’ ECS task set and running any ‘AfterAllowTestTraffic’ and ‘BeforeAllowTraffic’ lifecycle hooks, the deployment will immediately re-route production traffic to the ‘green’ ECS task set. Default: 0

  • termination_wait_time (Optional[Duration]) – Specify how long CodeDeploy waits before it terminates the original ‘blue’ ECS task set when a blue-green deployment is complete. During this wait time, CodeDeploy will continue to monitor any CloudWatch alarms specified for the deployment group, and the deployment group can be configured to automatically roll back if those alarms fire. Once CodeDeploy begins to terminate the ‘blue’ ECS task set, the deployment can no longer be rolled back, manually or automatically. By default, the deployment will immediately terminate the ‘blue’ ECS task set after production traffic is successfully routed to the ‘green’ ECS task set. Default: 0

  • test_listener (Optional[IListener]) – The load balancer listener used to route test traffic to the ‘green’ ECS task set during a blue-green deployment. During a blue-green deployment, validation can occur after test traffic has been re-routed and before production traffic has been re-routed to the ‘green’ ECS task set. You can specify one or more Lambda funtions in the deployment’s AppSpec file that run during the AfterAllowTestTraffic hook. The functions can run validation tests. If a validation test fails, a deployment rollback is triggered. If the validation tests succeed, the next hook in the deployment lifecycle, BeforeAllowTraffic, is triggered. If a test listener is not specified, the deployment will proceed to routing the production listener to the ‘green’ ECS task set and will skip the AfterAllowTestTraffic hook. Default: No test listener will be added

See:

https://docs.aws.amazon.com/codedeploy/latest/userguide/reference-appspec-file-structure-hooks.html#appspec-hooks-ecs

ExampleMetadata:

infused

Example:

# my_application: codedeploy.EcsApplication
# cluster: ecs.Cluster
# task_definition: ecs.FargateTaskDefinition
# blue_target_group: elbv2.ITargetGroup
# green_target_group: elbv2.ITargetGroup
# listener: elbv2.IApplicationListener


service = ecs.FargateService(self, "Service",
    cluster=cluster,
    task_definition=task_definition,
    deployment_controller=ecs.DeploymentController(
        type=ecs.DeploymentControllerType.CODE_DEPLOY
    )
)

codedeploy.EcsDeploymentGroup(self, "BlueGreenDG",
    service=service,
    blue_green_deployment_config=codedeploy.EcsBlueGreenDeploymentConfig(
        blue_target_group=blue_target_group,
        green_target_group=green_target_group,
        listener=listener
    ),
    deployment_config=codedeploy.EcsDeploymentConfig.CANARY_10PERCENT_5MINUTES
)

Attributes

blue_target_group

The target group that will be associated with the ‘blue’ ECS task set during a blue-green deployment.

deployment_approval_wait_time

Specify how long CodeDeploy waits for approval to continue a blue-green deployment before it stops the deployment.

After provisioning the ‘green’ ECS task set and re-routing test traffic, CodeDeploy can wait for approval before continuing the deployment and re-routing production traffic. During this wait time, validation such as manual testing or running integration tests can occur using the test traffic port, prior to exposing the new ‘green’ task set to production traffic. To approve the deployment, validation steps use the CodeDeploy [ContinueDeployment API(https://docs.aws.amazon.com/codedeploy/latest/APIReference/API_ContinueDeployment.html). If the ContinueDeployment API is not called within the wait time period, CodeDeploy will stop the deployment.

By default, CodeDeploy will not wait for deployment approval. After re-routing test traffic to the ‘green’ ECS task set and running any ‘AfterAllowTestTraffic’ and ‘BeforeAllowTraffic’ lifecycle hooks, the deployment will immediately re-route production traffic to the ‘green’ ECS task set.

Default:

0

green_target_group

The target group that will be associated with the ‘green’ ECS task set during a blue-green deployment.

listener

The load balancer listener used to serve production traffic and to shift production traffic from the ‘blue’ ECS task set to the ‘green’ ECS task set during a blue-green deployment.

termination_wait_time

Specify how long CodeDeploy waits before it terminates the original ‘blue’ ECS task set when a blue-green deployment is complete.

During this wait time, CodeDeploy will continue to monitor any CloudWatch alarms specified for the deployment group, and the deployment group can be configured to automatically roll back if those alarms fire. Once CodeDeploy begins to terminate the ‘blue’ ECS task set, the deployment can no longer be rolled back, manually or automatically.

By default, the deployment will immediately terminate the ‘blue’ ECS task set after production traffic is successfully routed to the ‘green’ ECS task set.

Default:

0

test_listener

The load balancer listener used to route test traffic to the ‘green’ ECS task set during a blue-green deployment.

During a blue-green deployment, validation can occur after test traffic has been re-routed and before production traffic has been re-routed to the ‘green’ ECS task set. You can specify one or more Lambda funtions in the deployment’s AppSpec file that run during the AfterAllowTestTraffic hook. The functions can run validation tests. If a validation test fails, a deployment rollback is triggered. If the validation tests succeed, the next hook in the deployment lifecycle, BeforeAllowTraffic, is triggered.

If a test listener is not specified, the deployment will proceed to routing the production listener to the ‘green’ ECS task set and will skip the AfterAllowTestTraffic hook.

Default:

No test listener will be added