Class CfnScalingPolicy
- All Implemented Interfaces:
IConstruct,IDependable,IInspectable,software.amazon.jsii.JsiiSerializable,software.constructs.IConstruct
AWS::AutoScaling::ScalingPolicy.
The AWS::AutoScaling::ScalingPolicy resource specifies an Amazon EC2 Auto Scaling scaling policy so that the Auto Scaling group can scale the number of instances available for your application.
For more information about using scaling policies to scale your Auto Scaling group automatically, see Dynamic scaling and Predictive scaling in the Amazon EC2 Auto Scaling User Guide .
Example:
// The code below shows an example of how to instantiate this type.
// The values are placeholders you should change.
import software.amazon.awscdk.services.autoscaling.*;
CfnScalingPolicy cfnScalingPolicy = CfnScalingPolicy.Builder.create(this, "MyCfnScalingPolicy")
.autoScalingGroupName("autoScalingGroupName")
// the properties below are optional
.adjustmentType("adjustmentType")
.cooldown("cooldown")
.estimatedInstanceWarmup(123)
.metricAggregationType("metricAggregationType")
.minAdjustmentMagnitude(123)
.policyType("policyType")
.predictiveScalingConfiguration(PredictiveScalingConfigurationProperty.builder()
.metricSpecifications(List.of(PredictiveScalingMetricSpecificationProperty.builder()
.targetValue(123)
// the properties below are optional
.customizedCapacityMetricSpecification(PredictiveScalingCustomizedCapacityMetricProperty.builder()
.metricDataQueries(List.of(MetricDataQueryProperty.builder()
.id("id")
// the properties below are optional
.expression("expression")
.label("label")
.metricStat(MetricStatProperty.builder()
.metric(MetricProperty.builder()
.metricName("metricName")
.namespace("namespace")
// the properties below are optional
.dimensions(List.of(MetricDimensionProperty.builder()
.name("name")
.value("value")
.build()))
.build())
.stat("stat")
// the properties below are optional
.unit("unit")
.build())
.returnData(false)
.build()))
.build())
.customizedLoadMetricSpecification(PredictiveScalingCustomizedLoadMetricProperty.builder()
.metricDataQueries(List.of(MetricDataQueryProperty.builder()
.id("id")
// the properties below are optional
.expression("expression")
.label("label")
.metricStat(MetricStatProperty.builder()
.metric(MetricProperty.builder()
.metricName("metricName")
.namespace("namespace")
// the properties below are optional
.dimensions(List.of(MetricDimensionProperty.builder()
.name("name")
.value("value")
.build()))
.build())
.stat("stat")
// the properties below are optional
.unit("unit")
.build())
.returnData(false)
.build()))
.build())
.customizedScalingMetricSpecification(PredictiveScalingCustomizedScalingMetricProperty.builder()
.metricDataQueries(List.of(MetricDataQueryProperty.builder()
.id("id")
// the properties below are optional
.expression("expression")
.label("label")
.metricStat(MetricStatProperty.builder()
.metric(MetricProperty.builder()
.metricName("metricName")
.namespace("namespace")
// the properties below are optional
.dimensions(List.of(MetricDimensionProperty.builder()
.name("name")
.value("value")
.build()))
.build())
.stat("stat")
// the properties below are optional
.unit("unit")
.build())
.returnData(false)
.build()))
.build())
.predefinedLoadMetricSpecification(PredictiveScalingPredefinedLoadMetricProperty.builder()
.predefinedMetricType("predefinedMetricType")
// the properties below are optional
.resourceLabel("resourceLabel")
.build())
.predefinedMetricPairSpecification(PredictiveScalingPredefinedMetricPairProperty.builder()
.predefinedMetricType("predefinedMetricType")
// the properties below are optional
.resourceLabel("resourceLabel")
.build())
.predefinedScalingMetricSpecification(PredictiveScalingPredefinedScalingMetricProperty.builder()
.predefinedMetricType("predefinedMetricType")
// the properties below are optional
.resourceLabel("resourceLabel")
.build())
.build()))
// the properties below are optional
.maxCapacityBreachBehavior("maxCapacityBreachBehavior")
.maxCapacityBuffer(123)
.mode("mode")
.schedulingBufferTime(123)
.build())
.scalingAdjustment(123)
.stepAdjustments(List.of(StepAdjustmentProperty.builder()
.scalingAdjustment(123)
// the properties below are optional
.metricIntervalLowerBound(123)
.metricIntervalUpperBound(123)
.build()))
.targetTrackingConfiguration(TargetTrackingConfigurationProperty.builder()
.targetValue(123)
// the properties below are optional
.customizedMetricSpecification(CustomizedMetricSpecificationProperty.builder()
.metricName("metricName")
.namespace("namespace")
.statistic("statistic")
// the properties below are optional
.dimensions(List.of(MetricDimensionProperty.builder()
.name("name")
.value("value")
.build()))
.unit("unit")
.build())
.disableScaleIn(false)
.predefinedMetricSpecification(PredefinedMetricSpecificationProperty.builder()
.predefinedMetricType("predefinedMetricType")
// the properties below are optional
.resourceLabel("resourceLabel")
.build())
.build())
.build();
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic final classA fluent builder forCfnScalingPolicy.static interfaceContains customized metric specification information for a target tracking scaling policy for Amazon EC2 Auto Scaling.static interfaceThe metric data to return.static interfaceMetricDimensionspecifies a name/value pair that is part of the identity of a CloudWatch metric for theDimensionsproperty of the AWS::AutoScaling::ScalingPolicy CustomizedMetricSpecification property type.static interfaceRepresents a specific metric.static interfaceMetricStatis a property of the AWS::AutoScaling::ScalingPolicy MetricDataQuery property type.static interfaceContains predefined metric specification information for a target tracking scaling policy for Amazon EC2 Auto Scaling.static interfacePredictiveScalingConfigurationis a property of the AWS::AutoScaling::ScalingPolicy resource that specifies a predictive scaling policy for Amazon EC2 Auto Scaling.static interfaceContains capacity metric information for theCustomizedCapacityMetricSpecificationproperty of the AWS::AutoScaling::ScalingPolicy PredictiveScalingMetricSpecification property type.static interfaceContains load metric information for theCustomizedLoadMetricSpecificationproperty of the AWS::AutoScaling::ScalingPolicy PredictiveScalingMetricSpecification property type.static interfaceContains scaling metric information for theCustomizedScalingMetricSpecificationproperty of the AWS::AutoScaling::ScalingPolicy PredictiveScalingMetricSpecification property type.static interfaceA structure that specifies a metric specification for theMetricSpecificationsproperty of the AWS::AutoScaling::ScalingPolicy PredictiveScalingConfiguration property type.static interfaceContains load metric information for thePredefinedLoadMetricSpecificationproperty of the AWS::AutoScaling::ScalingPolicy PredictiveScalingMetricSpecification property type.static interfaceContains metric pair information for thePredefinedMetricPairSpecificationproperty of the AWS::AutoScaling::ScalingPolicy PredictiveScalingMetricSpecification property type.static interfaceContains scaling metric information for thePredefinedScalingMetricSpecificationproperty of the AWS::AutoScaling::ScalingPolicy PredictiveScalingMetricSpecification property type.static interfaceStepAdjustmentspecifies a step adjustment for theStepAdjustmentsproperty of the AWS::AutoScaling::ScalingPolicy resource.static interfaceTargetTrackingConfigurationis a property of the AWS::AutoScaling::ScalingPolicy resource that specifies a target tracking scaling policy configuration for Amazon EC2 Auto Scaling.Nested classes/interfaces inherited from class software.amazon.jsii.JsiiObject
software.amazon.jsii.JsiiObject.InitializationModeNested classes/interfaces inherited from interface software.amazon.awscdk.core.IConstruct
IConstruct.Jsii$DefaultNested classes/interfaces inherited from interface software.constructs.IConstruct
software.constructs.IConstruct.Jsii$DefaultNested classes/interfaces inherited from interface software.amazon.awscdk.core.IInspectable
IInspectable.Jsii$Default, IInspectable.Jsii$Proxy -
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final StringThe CloudFormation resource type name for this resource class. -
Constructor Summary
ConstructorsModifierConstructorDescriptionCfnScalingPolicy(Construct scope, String id, CfnScalingPolicyProps props) Create a newAWS::AutoScaling::ScalingPolicy.protectedCfnScalingPolicy(software.amazon.jsii.JsiiObject.InitializationMode initializationMode) protectedCfnScalingPolicy(software.amazon.jsii.JsiiObjectRef objRef) -
Method Summary
Modifier and TypeMethodDescriptionSpecifies how the scaling adjustment is interpreted (for example, an absolute number or a percentage).Returns the name of a scaling policy.The name of the Auto Scaling group.A cooldown period, in seconds, that applies to a specific simple scaling policy.Not needed if the default instance warmup is defined for the group..The aggregation type for the CloudWatch metrics.The minimum value to scale by when the adjustment type isPercentChangeInCapacity.One of the following policy types:.A predictive scaling policy.The amount by which to scale, based on the specified adjustment type.A set of adjustments that enable you to scale based on the size of the alarm breach.A target tracking scaling policy.voidinspect(TreeInspector inspector) Examines the CloudFormation resource and discloses attributes.renderProperties(Map<String, Object> props) voidsetAdjustmentType(String value) Specifies how the scaling adjustment is interpreted (for example, an absolute number or a percentage).voidsetAutoScalingGroupName(String value) The name of the Auto Scaling group.voidsetCooldown(String value) A cooldown period, in seconds, that applies to a specific simple scaling policy.voidsetEstimatedInstanceWarmup(Number value) Not needed if the default instance warmup is defined for the group..voidsetMetricAggregationType(String value) The aggregation type for the CloudWatch metrics.voidsetMinAdjustmentMagnitude(Number value) The minimum value to scale by when the adjustment type isPercentChangeInCapacity.voidsetPolicyType(String value) One of the following policy types:.voidA predictive scaling policy.voidA predictive scaling policy.voidsetScalingAdjustment(Number value) The amount by which to scale, based on the specified adjustment type.voidsetStepAdjustments(List<Object> value) A set of adjustments that enable you to scale based on the size of the alarm breach.voidsetStepAdjustments(IResolvable value) A set of adjustments that enable you to scale based on the size of the alarm breach.voidA target tracking scaling policy.voidA target tracking scaling policy.Methods inherited from class software.amazon.awscdk.core.CfnResource
addDeletionOverride, addDependsOn, addMetadata, addOverride, addPropertyDeletionOverride, addPropertyOverride, applyRemovalPolicy, applyRemovalPolicy, applyRemovalPolicy, getAtt, getCfnOptions, getCfnResourceType, getMetadata, getUpdatedProperites, isCfnResource, shouldSynthesize, toString, validatePropertiesMethods inherited from class software.amazon.awscdk.core.CfnRefElement
getRefMethods inherited from class software.amazon.awscdk.core.CfnElement
getCreationStack, getLogicalId, getStack, isCfnElement, overrideLogicalIdMethods inherited from class software.amazon.awscdk.core.Construct
getNode, isConstruct, onPrepare, onSynthesize, onValidate, prepare, synthesize, validateMethods inherited from class software.amazon.jsii.JsiiObject
jsiiAsyncCall, jsiiAsyncCall, jsiiCall, jsiiCall, jsiiGet, jsiiGet, jsiiSet, jsiiStaticCall, jsiiStaticCall, jsiiStaticGet, jsiiStaticGet, jsiiStaticSet, jsiiStaticSetMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitMethods inherited from interface software.amazon.jsii.JsiiSerializable
$jsii$toJson
-
Field Details
-
CFN_RESOURCE_TYPE_NAME
The CloudFormation resource type name for this resource class.
-
-
Constructor Details
-
CfnScalingPolicy
protected CfnScalingPolicy(software.amazon.jsii.JsiiObjectRef objRef) -
CfnScalingPolicy
protected CfnScalingPolicy(software.amazon.jsii.JsiiObject.InitializationMode initializationMode) -
CfnScalingPolicy
@Stability(Stable) public CfnScalingPolicy(@NotNull Construct scope, @NotNull String id, @NotNull CfnScalingPolicyProps props) Create a newAWS::AutoScaling::ScalingPolicy.- Parameters:
scope-- scope in which this resource is defined.
id-- scoped id of the resource.
props-- resource properties.
-
-
Method Details
-
inspect
Examines the CloudFormation resource and discloses attributes.- Specified by:
inspectin interfaceIInspectable- Parameters:
inspector-- tree inspector to collect and process attributes.
-
renderProperties
@Stability(Stable) @NotNull protected Map<String,Object> renderProperties(@NotNull Map<String, Object> props) - Overrides:
renderPropertiesin classCfnResource- Parameters:
props- This parameter is required.
-
getAttrArn
-
getAttrPolicyName
Returns the name of a scaling policy. -
getCfnProperties
- Overrides:
getCfnPropertiesin classCfnResource
-
getAutoScalingGroupName
The name of the Auto Scaling group. -
setAutoScalingGroupName
The name of the Auto Scaling group. -
getAdjustmentType
Specifies how the scaling adjustment is interpreted (for example, an absolute number or a percentage).The valid values are
ChangeInCapacity,ExactCapacity, andPercentChangeInCapacity.Required if the policy type is
StepScalingorSimpleScaling. For more information, see Scaling adjustment types in the Amazon EC2 Auto Scaling User Guide . -
setAdjustmentType
Specifies how the scaling adjustment is interpreted (for example, an absolute number or a percentage).The valid values are
ChangeInCapacity,ExactCapacity, andPercentChangeInCapacity.Required if the policy type is
StepScalingorSimpleScaling. For more information, see Scaling adjustment types in the Amazon EC2 Auto Scaling User Guide . -
getCooldown
A cooldown period, in seconds, that applies to a specific simple scaling policy.When a cooldown period is specified here, it overrides the default cooldown.
Valid only if the policy type is
SimpleScaling. For more information, see Scaling cooldowns for Amazon EC2 Auto Scaling in the Amazon EC2 Auto Scaling User Guide .Default: None
-
setCooldown
A cooldown period, in seconds, that applies to a specific simple scaling policy.When a cooldown period is specified here, it overrides the default cooldown.
Valid only if the policy type is
SimpleScaling. For more information, see Scaling cooldowns for Amazon EC2 Auto Scaling in the Amazon EC2 Auto Scaling User Guide .Default: None
-
getEstimatedInstanceWarmup
Not needed if the default instance warmup is defined for the group..The estimated time, in seconds, until a newly launched instance can contribute to the CloudWatch metrics. This warm-up period applies to instances launched due to a specific target tracking or step scaling policy. When a warm-up period is specified here, it overrides the default instance warmup.
Valid only if the policy type is
TargetTrackingScalingorStepScaling.The default is to use the value for the default instance warmup defined for the group. If default instance warmup is null, then
EstimatedInstanceWarmupfalls back to the value of default cooldown. -
setEstimatedInstanceWarmup
Not needed if the default instance warmup is defined for the group..The estimated time, in seconds, until a newly launched instance can contribute to the CloudWatch metrics. This warm-up period applies to instances launched due to a specific target tracking or step scaling policy. When a warm-up period is specified here, it overrides the default instance warmup.
Valid only if the policy type is
TargetTrackingScalingorStepScaling.The default is to use the value for the default instance warmup defined for the group. If default instance warmup is null, then
EstimatedInstanceWarmupfalls back to the value of default cooldown. -
getMetricAggregationType
The aggregation type for the CloudWatch metrics.The valid values are
Minimum,Maximum, andAverage. If the aggregation type is null, the value is treated asAverage.Valid only if the policy type is
StepScaling. -
setMetricAggregationType
The aggregation type for the CloudWatch metrics.The valid values are
Minimum,Maximum, andAverage. If the aggregation type is null, the value is treated asAverage.Valid only if the policy type is
StepScaling. -
getMinAdjustmentMagnitude
The minimum value to scale by when the adjustment type isPercentChangeInCapacity.For example, suppose that you create a step scaling policy to scale out an Auto Scaling group by 25 percent and you specify a
MinAdjustmentMagnitudeof 2. If the group has 4 instances and the scaling policy is performed, 25 percent of 4 is 1. However, because you specified aMinAdjustmentMagnitudeof 2, Amazon EC2 Auto Scaling scales out the group by 2 instances.Valid only if the policy type is
StepScalingorSimpleScaling. For more information, see Scaling adjustment types in the Amazon EC2 Auto Scaling User Guide .Some Auto Scaling groups use instance weights. In this case, set the
MinAdjustmentMagnitudeto a value that is at least as large as your largest instance weight. -
setMinAdjustmentMagnitude
The minimum value to scale by when the adjustment type isPercentChangeInCapacity.For example, suppose that you create a step scaling policy to scale out an Auto Scaling group by 25 percent and you specify a
MinAdjustmentMagnitudeof 2. If the group has 4 instances and the scaling policy is performed, 25 percent of 4 is 1. However, because you specified aMinAdjustmentMagnitudeof 2, Amazon EC2 Auto Scaling scales out the group by 2 instances.Valid only if the policy type is
StepScalingorSimpleScaling. For more information, see Scaling adjustment types in the Amazon EC2 Auto Scaling User Guide .Some Auto Scaling groups use instance weights. In this case, set the
MinAdjustmentMagnitudeto a value that is at least as large as your largest instance weight. -
getPolicyType
One of the following policy types:.TargetTrackingScalingStepScalingSimpleScaling(default)PredictiveScaling
-
setPolicyType
One of the following policy types:.TargetTrackingScalingStepScalingSimpleScaling(default)PredictiveScaling
-
getPredictiveScalingConfiguration
A predictive scaling policy. Provides support for predefined and custom metrics.Predefined metrics include CPU utilization, network in/out, and the Application Load Balancer request count.
Required if the policy type is
PredictiveScaling. -
setPredictiveScalingConfiguration
A predictive scaling policy. Provides support for predefined and custom metrics.Predefined metrics include CPU utilization, network in/out, and the Application Load Balancer request count.
Required if the policy type is
PredictiveScaling. -
setPredictiveScalingConfiguration
@Stability(Stable) public void setPredictiveScalingConfiguration(@Nullable CfnScalingPolicy.PredictiveScalingConfigurationProperty value) A predictive scaling policy. Provides support for predefined and custom metrics.Predefined metrics include CPU utilization, network in/out, and the Application Load Balancer request count.
Required if the policy type is
PredictiveScaling. -
getScalingAdjustment
The amount by which to scale, based on the specified adjustment type.A positive value adds to the current capacity while a negative number removes from the current capacity. For exact capacity, you must specify a non-negative value.
Required if the policy type is
SimpleScaling. (Not used with any other policy type.) -
setScalingAdjustment
The amount by which to scale, based on the specified adjustment type.A positive value adds to the current capacity while a negative number removes from the current capacity. For exact capacity, you must specify a non-negative value.
Required if the policy type is
SimpleScaling. (Not used with any other policy type.) -
getStepAdjustments
A set of adjustments that enable you to scale based on the size of the alarm breach.Required if the policy type is
StepScaling. (Not used with any other policy type.) -
setStepAdjustments
A set of adjustments that enable you to scale based on the size of the alarm breach.Required if the policy type is
StepScaling. (Not used with any other policy type.) -
setStepAdjustments
A set of adjustments that enable you to scale based on the size of the alarm breach.Required if the policy type is
StepScaling. (Not used with any other policy type.) -
getTargetTrackingConfiguration
A target tracking scaling policy. Provides support for predefined or custom metrics.The following predefined metrics are available:
ASGAverageCPUUtilizationASGAverageNetworkInASGAverageNetworkOutALBRequestCountPerTarget
If you specify
ALBRequestCountPerTargetfor the metric, you must specify theResourceLabelproperty with thePredefinedMetricSpecification.Required if the policy type is
TargetTrackingScaling. -
setTargetTrackingConfiguration
A target tracking scaling policy. Provides support for predefined or custom metrics.The following predefined metrics are available:
ASGAverageCPUUtilizationASGAverageNetworkInASGAverageNetworkOutALBRequestCountPerTarget
If you specify
ALBRequestCountPerTargetfor the metric, you must specify theResourceLabelproperty with thePredefinedMetricSpecification.Required if the policy type is
TargetTrackingScaling. -
setTargetTrackingConfiguration
@Stability(Stable) public void setTargetTrackingConfiguration(@Nullable CfnScalingPolicy.TargetTrackingConfigurationProperty value) A target tracking scaling policy. Provides support for predefined or custom metrics.The following predefined metrics are available:
ASGAverageCPUUtilizationASGAverageNetworkInASGAverageNetworkOutALBRequestCountPerTarget
If you specify
ALBRequestCountPerTargetfor the metric, you must specify theResourceLabelproperty with thePredefinedMetricSpecification.Required if the policy type is
TargetTrackingScaling.
-