Class DeploymentConfiguration
- java.lang.Object
-
- software.amazon.awssdk.services.ecs.model.DeploymentConfiguration
-
- All Implemented Interfaces:
Serializable,SdkPojo,ToCopyableBuilder<DeploymentConfiguration.Builder,DeploymentConfiguration>
@Generated("software.amazon.awssdk:codegen") public final class DeploymentConfiguration extends Object implements SdkPojo, Serializable, ToCopyableBuilder<DeploymentConfiguration.Builder,DeploymentConfiguration>
Optional deployment parameters that control how many tasks run during a deployment and the ordering of stopping and starting tasks.
- See Also:
- Serialized Form
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static interfaceDeploymentConfiguration.Builder
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description DeploymentAlarmsalarms()Information about the CloudWatch alarms.IntegerbakeTimeInMinutes()The time period when both blue and green service revisions are running simultaneously after the production traffic has shifted.static DeploymentConfiguration.Builderbuilder()CanaryConfigurationcanaryConfiguration()Configuration for canary deployment strategy.DeploymentCircuitBreakerdeploymentCircuitBreaker()booleanequals(Object obj)booleanequalsBySdkFields(Object obj)<T> Optional<T>getValueForField(String fieldName, Class<T> clazz)inthashCode()booleanhasLifecycleHooks()For responses, this returns true if the service returned a value for the LifecycleHooks property.List<DeploymentLifecycleHook>lifecycleHooks()An array of deployment lifecycle hook objects to run custom logic at specific stages of the deployment lifecycle.LinearConfigurationlinearConfiguration()Configuration for linear deployment strategy.IntegermaximumPercent()If a service is using the rolling update (ECS) deployment type, themaximumPercentparameter represents an upper limit on the number of your service's tasks that are allowed in theRUNNINGorPENDINGstate during a deployment, as a percentage of thedesiredCount(rounded down to the nearest integer).IntegerminimumHealthyPercent()If a service is using the rolling update (ECS) deployment type, theminimumHealthyPercentrepresents a lower limit on the number of your service's tasks that must remain in theRUNNINGstate during a deployment, as a percentage of thedesiredCount(rounded up to the nearest integer).Map<String,SdkField<?>>sdkFieldNameToField()List<SdkField<?>>sdkFields()static Class<? extends DeploymentConfiguration.Builder>serializableBuilderClass()DeploymentStrategystrategy()The deployment strategy for the service.StringstrategyAsString()The deployment strategy for the service.DeploymentConfiguration.BuildertoBuilder()StringtoString()Returns a string representation of this object.-
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface software.amazon.awssdk.utils.builder.ToCopyableBuilder
copy
-
-
-
-
Method Detail
-
deploymentCircuitBreaker
public final DeploymentCircuitBreaker deploymentCircuitBreaker()
The deployment circuit breaker can only be used for services using the rolling update (
ECS) deployment type.The deployment circuit breaker determines whether a service deployment will fail if the service can't reach a steady state. If you use the deployment circuit breaker, a service deployment will transition to a failed state and stop launching new tasks. If you use the rollback option, when a service deployment fails, the service is rolled back to the last deployment that completed successfully. For more information, see Rolling update in the Amazon Elastic Container Service Developer Guide
- Returns:
The deployment circuit breaker can only be used for services using the rolling update (
ECS) deployment type.The deployment circuit breaker determines whether a service deployment will fail if the service can't reach a steady state. If you use the deployment circuit breaker, a service deployment will transition to a failed state and stop launching new tasks. If you use the rollback option, when a service deployment fails, the service is rolled back to the last deployment that completed successfully. For more information, see Rolling update in the Amazon Elastic Container Service Developer Guide
-
maximumPercent
public final Integer maximumPercent()
If a service is using the rolling update (
ECS) deployment type, themaximumPercentparameter represents an upper limit on the number of your service's tasks that are allowed in theRUNNINGorPENDINGstate during a deployment, as a percentage of thedesiredCount(rounded down to the nearest integer). This parameter enables you to define the deployment batch size. For example, if your service is using theREPLICAservice scheduler and has adesiredCountof four tasks and amaximumPercentvalue of 200%, the scheduler may start four new tasks before stopping the four older tasks (provided that the cluster resources required to do this are available). The defaultmaximumPercentvalue for a service using theREPLICAservice scheduler is 200%.The Amazon ECS scheduler uses this parameter to replace unhealthy tasks by starting replacement tasks first and then stopping the unhealthy tasks, as long as cluster resources for starting replacement tasks are available. For more information about how the scheduler replaces unhealthy tasks, see Amazon ECS services.
If a service is using either the blue/green (
CODE_DEPLOY) orEXTERNALdeployment types, and tasks in the service use the EC2 launch type, the maximum percent value is set to the default value. The maximum percent value is used to define the upper limit on the number of the tasks in the service that remain in theRUNNINGstate while the container instances are in theDRAININGstate.You can't specify a custom
maximumPercentvalue for a service that uses either the blue/green (CODE_DEPLOY) orEXTERNALdeployment types and has tasks that use the EC2 launch type.If the service uses either the blue/green (
CODE_DEPLOY) orEXTERNALdeployment types, and the tasks in the service use the Fargate launch type, the maximum percent value is not used. The value is still returned when describing your service.- Returns:
- If a service is using the rolling update (
ECS) deployment type, themaximumPercentparameter represents an upper limit on the number of your service's tasks that are allowed in theRUNNINGorPENDINGstate during a deployment, as a percentage of thedesiredCount(rounded down to the nearest integer). This parameter enables you to define the deployment batch size. For example, if your service is using theREPLICAservice scheduler and has adesiredCountof four tasks and amaximumPercentvalue of 200%, the scheduler may start four new tasks before stopping the four older tasks (provided that the cluster resources required to do this are available). The defaultmaximumPercentvalue for a service using theREPLICAservice scheduler is 200%.The Amazon ECS scheduler uses this parameter to replace unhealthy tasks by starting replacement tasks first and then stopping the unhealthy tasks, as long as cluster resources for starting replacement tasks are available. For more information about how the scheduler replaces unhealthy tasks, see Amazon ECS services.
If a service is using either the blue/green (
CODE_DEPLOY) orEXTERNALdeployment types, and tasks in the service use the EC2 launch type, the maximum percent value is set to the default value. The maximum percent value is used to define the upper limit on the number of the tasks in the service that remain in theRUNNINGstate while the container instances are in theDRAININGstate.You can't specify a custom
maximumPercentvalue for a service that uses either the blue/green (CODE_DEPLOY) orEXTERNALdeployment types and has tasks that use the EC2 launch type.If the service uses either the blue/green (
CODE_DEPLOY) orEXTERNALdeployment types, and the tasks in the service use the Fargate launch type, the maximum percent value is not used. The value is still returned when describing your service.
-
minimumHealthyPercent
public final Integer minimumHealthyPercent()
If a service is using the rolling update (
ECS) deployment type, theminimumHealthyPercentrepresents a lower limit on the number of your service's tasks that must remain in theRUNNINGstate during a deployment, as a percentage of thedesiredCount(rounded up to the nearest integer). This parameter enables you to deploy without using additional cluster capacity. For example, if your service has adesiredCountof four tasks and aminimumHealthyPercentof 50%, the service scheduler may stop two existing tasks to free up cluster capacity before starting two new tasks.If any tasks are unhealthy and if
maximumPercentdoesn't allow the Amazon ECS scheduler to start replacement tasks, the scheduler stops the unhealthy tasks one-by-one — using theminimumHealthyPercentas a constraint — to clear up capacity to launch replacement tasks. For more information about how the scheduler replaces unhealthy tasks, see Amazon ECS services.For services that do not use a load balancer, the following should be noted:
-
A service is considered healthy if all essential containers within the tasks in the service pass their health checks.
-
If a task has no essential containers with a health check defined, the service scheduler will wait for 40 seconds after a task reaches a
RUNNINGstate before the task is counted towards the minimum healthy percent total. -
If a task has one or more essential containers with a health check defined, the service scheduler will wait for the task to reach a healthy status before counting it towards the minimum healthy percent total. A task is considered healthy when all essential containers within the task have passed their health checks. The amount of time the service scheduler can wait for is determined by the container health check settings.
For services that do use a load balancer, the following should be noted:
-
If a task has no essential containers with a health check defined, the service scheduler will wait for the load balancer target group health check to return a healthy status before counting the task towards the minimum healthy percent total.
-
If a task has an essential container with a health check defined, the service scheduler will wait for both the task to reach a healthy status and the load balancer target group health check to return a healthy status before counting the task towards the minimum healthy percent total.
The default value for a replica service for
minimumHealthyPercentis 100%. The defaultminimumHealthyPercentvalue for a service using theDAEMONservice schedule is 0% for the CLI, the Amazon Web Services SDKs, and the APIs and 50% for the Amazon Web Services Management Console.The minimum number of healthy tasks during a deployment is the
desiredCountmultiplied by theminimumHealthyPercent/100, rounded up to the nearest integer value.If a service is using either the blue/green (
CODE_DEPLOY) orEXTERNALdeployment types and is running tasks that use the EC2 launch type, the minimum healthy percent value is set to the default value. The minimum healthy percent value is used to define the lower limit on the number of the tasks in the service that remain in theRUNNINGstate while the container instances are in theDRAININGstate.You can't specify a custom
minimumHealthyPercentvalue for a service that uses either the blue/green (CODE_DEPLOY) orEXTERNALdeployment types and has tasks that use the EC2 launch type.If a service is using either the blue/green (
CODE_DEPLOY) orEXTERNALdeployment types and is running tasks that use the Fargate launch type, the minimum healthy percent value is not used, although it is returned when describing your service.- Returns:
- If a service is using the rolling update (
ECS) deployment type, theminimumHealthyPercentrepresents a lower limit on the number of your service's tasks that must remain in theRUNNINGstate during a deployment, as a percentage of thedesiredCount(rounded up to the nearest integer). This parameter enables you to deploy without using additional cluster capacity. For example, if your service has adesiredCountof four tasks and aminimumHealthyPercentof 50%, the service scheduler may stop two existing tasks to free up cluster capacity before starting two new tasks.If any tasks are unhealthy and if
maximumPercentdoesn't allow the Amazon ECS scheduler to start replacement tasks, the scheduler stops the unhealthy tasks one-by-one — using theminimumHealthyPercentas a constraint — to clear up capacity to launch replacement tasks. For more information about how the scheduler replaces unhealthy tasks, see Amazon ECS services.For services that do not use a load balancer, the following should be noted:
-
A service is considered healthy if all essential containers within the tasks in the service pass their health checks.
-
If a task has no essential containers with a health check defined, the service scheduler will wait for 40 seconds after a task reaches a
RUNNINGstate before the task is counted towards the minimum healthy percent total. -
If a task has one or more essential containers with a health check defined, the service scheduler will wait for the task to reach a healthy status before counting it towards the minimum healthy percent total. A task is considered healthy when all essential containers within the task have passed their health checks. The amount of time the service scheduler can wait for is determined by the container health check settings.
For services that do use a load balancer, the following should be noted:
-
If a task has no essential containers with a health check defined, the service scheduler will wait for the load balancer target group health check to return a healthy status before counting the task towards the minimum healthy percent total.
-
If a task has an essential container with a health check defined, the service scheduler will wait for both the task to reach a healthy status and the load balancer target group health check to return a healthy status before counting the task towards the minimum healthy percent total.
The default value for a replica service for
minimumHealthyPercentis 100%. The defaultminimumHealthyPercentvalue for a service using theDAEMONservice schedule is 0% for the CLI, the Amazon Web Services SDKs, and the APIs and 50% for the Amazon Web Services Management Console.The minimum number of healthy tasks during a deployment is the
desiredCountmultiplied by theminimumHealthyPercent/100, rounded up to the nearest integer value.If a service is using either the blue/green (
CODE_DEPLOY) orEXTERNALdeployment types and is running tasks that use the EC2 launch type, the minimum healthy percent value is set to the default value. The minimum healthy percent value is used to define the lower limit on the number of the tasks in the service that remain in theRUNNINGstate while the container instances are in theDRAININGstate.You can't specify a custom
minimumHealthyPercentvalue for a service that uses either the blue/green (CODE_DEPLOY) orEXTERNALdeployment types and has tasks that use the EC2 launch type.If a service is using either the blue/green (
CODE_DEPLOY) orEXTERNALdeployment types and is running tasks that use the Fargate launch type, the minimum healthy percent value is not used, although it is returned when describing your service. -
-
-
alarms
public final DeploymentAlarms alarms()
Information about the CloudWatch alarms.
- Returns:
- Information about the CloudWatch alarms.
-
strategy
public final DeploymentStrategy strategy()
The deployment strategy for the service. Choose from these valid values:
-
ROLLING- When you create a service which uses the rolling update (ROLLING) deployment strategy, the Amazon ECS service scheduler replaces the currently running tasks with new tasks. The number of tasks that Amazon ECS adds or removes from the service during a rolling update is controlled by the service deployment configuration. -
BLUE_GREEN- A blue/green deployment strategy (BLUE_GREEN) is a release methodology that reduces downtime and risk by running two identical production environments called blue and green. With Amazon ECS blue/green deployments, you can validate new service revisions before directing production traffic to them. This approach provides a safer way to deploy changes with the ability to quickly roll back if needed. -
LINEAR- A linear deployment strategy (LINEAR) gradually shifts traffic from the current production environment to a new environment in equal percentages over time. With Amazon ECS linear deployments, you can control the pace of traffic shifting and validate new service revisions with increasing amounts of production traffic. -
CANARY- A canary deployment strategy (CANARY) shifts a small percentage of traffic to the new service revision first, then shifts the remaining traffic all at once after a specified time period. This allows you to test the new version with a subset of users before full deployment.
If the service returns an enum value that is not available in the current SDK version,
strategywill returnDeploymentStrategy.UNKNOWN_TO_SDK_VERSION. The raw value returned by the service is available fromstrategyAsString().- Returns:
- The deployment strategy for the service. Choose from these valid values:
-
ROLLING- When you create a service which uses the rolling update (ROLLING) deployment strategy, the Amazon ECS service scheduler replaces the currently running tasks with new tasks. The number of tasks that Amazon ECS adds or removes from the service during a rolling update is controlled by the service deployment configuration. -
BLUE_GREEN- A blue/green deployment strategy (BLUE_GREEN) is a release methodology that reduces downtime and risk by running two identical production environments called blue and green. With Amazon ECS blue/green deployments, you can validate new service revisions before directing production traffic to them. This approach provides a safer way to deploy changes with the ability to quickly roll back if needed. -
LINEAR- A linear deployment strategy (LINEAR) gradually shifts traffic from the current production environment to a new environment in equal percentages over time. With Amazon ECS linear deployments, you can control the pace of traffic shifting and validate new service revisions with increasing amounts of production traffic. -
CANARY- A canary deployment strategy (CANARY) shifts a small percentage of traffic to the new service revision first, then shifts the remaining traffic all at once after a specified time period. This allows you to test the new version with a subset of users before full deployment.
-
- See Also:
DeploymentStrategy
-
-
strategyAsString
public final String strategyAsString()
The deployment strategy for the service. Choose from these valid values:
-
ROLLING- When you create a service which uses the rolling update (ROLLING) deployment strategy, the Amazon ECS service scheduler replaces the currently running tasks with new tasks. The number of tasks that Amazon ECS adds or removes from the service during a rolling update is controlled by the service deployment configuration. -
BLUE_GREEN- A blue/green deployment strategy (BLUE_GREEN) is a release methodology that reduces downtime and risk by running two identical production environments called blue and green. With Amazon ECS blue/green deployments, you can validate new service revisions before directing production traffic to them. This approach provides a safer way to deploy changes with the ability to quickly roll back if needed. -
LINEAR- A linear deployment strategy (LINEAR) gradually shifts traffic from the current production environment to a new environment in equal percentages over time. With Amazon ECS linear deployments, you can control the pace of traffic shifting and validate new service revisions with increasing amounts of production traffic. -
CANARY- A canary deployment strategy (CANARY) shifts a small percentage of traffic to the new service revision first, then shifts the remaining traffic all at once after a specified time period. This allows you to test the new version with a subset of users before full deployment.
If the service returns an enum value that is not available in the current SDK version,
strategywill returnDeploymentStrategy.UNKNOWN_TO_SDK_VERSION. The raw value returned by the service is available fromstrategyAsString().- Returns:
- The deployment strategy for the service. Choose from these valid values:
-
ROLLING- When you create a service which uses the rolling update (ROLLING) deployment strategy, the Amazon ECS service scheduler replaces the currently running tasks with new tasks. The number of tasks that Amazon ECS adds or removes from the service during a rolling update is controlled by the service deployment configuration. -
BLUE_GREEN- A blue/green deployment strategy (BLUE_GREEN) is a release methodology that reduces downtime and risk by running two identical production environments called blue and green. With Amazon ECS blue/green deployments, you can validate new service revisions before directing production traffic to them. This approach provides a safer way to deploy changes with the ability to quickly roll back if needed. -
LINEAR- A linear deployment strategy (LINEAR) gradually shifts traffic from the current production environment to a new environment in equal percentages over time. With Amazon ECS linear deployments, you can control the pace of traffic shifting and validate new service revisions with increasing amounts of production traffic. -
CANARY- A canary deployment strategy (CANARY) shifts a small percentage of traffic to the new service revision first, then shifts the remaining traffic all at once after a specified time period. This allows you to test the new version with a subset of users before full deployment.
-
- See Also:
DeploymentStrategy
-
-
bakeTimeInMinutes
public final Integer bakeTimeInMinutes()
The time period when both blue and green service revisions are running simultaneously after the production traffic has shifted.
You must provide this parameter when you use the
BLUE_GREENdeployment strategy.- Returns:
- The time period when both blue and green service revisions are running simultaneously after the
production traffic has shifted.
You must provide this parameter when you use the
BLUE_GREENdeployment strategy.
-
hasLifecycleHooks
public final boolean hasLifecycleHooks()
For responses, this returns true if the service returned a value for the LifecycleHooks property. This DOES NOT check that the value is non-empty (for which, you should check theisEmpty()method on the property). This is useful because the SDK will never return a null collection or map, but you may need to differentiate between the service returning nothing (or null) and the service returning an empty collection or map. For requests, this returns true if a value for the property was specified in the request builder, and false if a value was not specified.
-
lifecycleHooks
public final List<DeploymentLifecycleHook> lifecycleHooks()
An array of deployment lifecycle hook objects to run custom logic at specific stages of the deployment lifecycle.
Attempts to modify the collection returned by this method will result in an UnsupportedOperationException.
This method will never return null. If you would like to know whether the service returned this field (so that you can differentiate between null and empty), you can use the
hasLifecycleHooks()method.- Returns:
- An array of deployment lifecycle hook objects to run custom logic at specific stages of the deployment lifecycle.
-
linearConfiguration
public final LinearConfiguration linearConfiguration()
Configuration for linear deployment strategy. Only valid when the deployment strategy is
LINEAR. This configuration enables progressive traffic shifting in equal percentage increments with configurable bake times between each step.- Returns:
- Configuration for linear deployment strategy. Only valid when the deployment strategy is
LINEAR. This configuration enables progressive traffic shifting in equal percentage increments with configurable bake times between each step.
-
canaryConfiguration
public final CanaryConfiguration canaryConfiguration()
Configuration for canary deployment strategy. Only valid when the deployment strategy is
CANARY. This configuration enables shifting a fixed percentage of traffic for testing, followed by shifting the remaining traffic after a bake period.- Returns:
- Configuration for canary deployment strategy. Only valid when the deployment strategy is
CANARY. This configuration enables shifting a fixed percentage of traffic for testing, followed by shifting the remaining traffic after a bake period.
-
toBuilder
public DeploymentConfiguration.Builder toBuilder()
- Specified by:
toBuilderin interfaceToCopyableBuilder<DeploymentConfiguration.Builder,DeploymentConfiguration>
-
builder
public static DeploymentConfiguration.Builder builder()
-
serializableBuilderClass
public static Class<? extends DeploymentConfiguration.Builder> serializableBuilderClass()
-
equalsBySdkFields
public final boolean equalsBySdkFields(Object obj)
- Specified by:
equalsBySdkFieldsin interfaceSdkPojo
-
toString
public final String toString()
Returns a string representation of this object. This is useful for testing and debugging. Sensitive data will be redacted from this string using a placeholder value.
-
sdkFieldNameToField
public final Map<String,SdkField<?>> sdkFieldNameToField()
- Specified by:
sdkFieldNameToFieldin interfaceSdkPojo
-
-