Interface EcsBlueGreenDeploymentConfig

All Superinterfaces:
software.amazon.jsii.JsiiSerializable
All Known Implementing Classes:
EcsBlueGreenDeploymentConfig.Jsii$Proxy

@Generated(value="jsii-pacmak/1.104.0 (build e79254c)", date="2024-10-31T19:12:54.914Z") @Stability(Stable) public interface EcsBlueGreenDeploymentConfig extends software.amazon.jsii.JsiiSerializable
Specify how the deployment behaves and how traffic is routed to the ECS service during a blue-green ECS deployment.

Example:

 EcsApplication myApplication;
 Cluster cluster;
 FargateTaskDefinition taskDefinition;
 ITargetGroup blueTargetGroup;
 ITargetGroup greenTargetGroup;
 IApplicationListener listener;
 FargateService service = FargateService.Builder.create(this, "Service")
         .cluster(cluster)
         .taskDefinition(taskDefinition)
         .deploymentController(DeploymentController.builder()
                 .type(DeploymentControllerType.CODE_DEPLOY)
                 .build())
         .build();
 EcsDeploymentGroup.Builder.create(this, "BlueGreenDG")
         .service(service)
         .blueGreenDeploymentConfig(EcsBlueGreenDeploymentConfig.builder()
                 .blueTargetGroup(blueTargetGroup)
                 .greenTargetGroup(greenTargetGroup)
                 .listener(listener)
                 .build())
         .deploymentConfig(EcsDeploymentConfig.CANARY_10PERCENT_5MINUTES)
         .build();
 

See Also:
  • Method Details

    • getBlueTargetGroup

      @Stability(Stable) @NotNull ITargetGroup getBlueTargetGroup()
      The target group that will be associated with the 'blue' ECS task set during a blue-green deployment.
    • getGreenTargetGroup

      @Stability(Stable) @NotNull ITargetGroup getGreenTargetGroup()
      The target group that will be associated with the 'green' ECS task set during a blue-green deployment.
    • getListener

      @Stability(Stable) @NotNull IListener getListener()
      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.
    • getDeploymentApprovalWaitTime

      @Stability(Stable) @Nullable default Duration getDeploymentApprovalWaitTime()
      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

    • getTerminationWaitTime

      @Stability(Stable) @Nullable default Duration getTerminationWaitTime()
      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

    • getTestListener

      @Stability(Stable) @Nullable default IListener getTestListener()
      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

    • builder

      @Stability(Stable) static EcsBlueGreenDeploymentConfig.Builder builder()
      Returns:
      a EcsBlueGreenDeploymentConfig.Builder of EcsBlueGreenDeploymentConfig