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 class
A fluent builder forCfnScalingPolicy
.static interface
Contains customized metric specification information for a target tracking scaling policy for Amazon EC2 Auto Scaling.static interface
The metric data to return.static interface
MetricDimension
specifies a name/value pair that is part of the identity of a CloudWatch metric for theDimensions
property of the AWS::AutoScaling::ScalingPolicy CustomizedMetricSpecification property type.static interface
Represents a specific metric.static interface
MetricStat
is a property of the AWS::AutoScaling::ScalingPolicy MetricDataQuery property type.static interface
Contains predefined metric specification information for a target tracking scaling policy for Amazon EC2 Auto Scaling.static interface
PredictiveScalingConfiguration
is a property of the AWS::AutoScaling::ScalingPolicy resource that specifies a predictive scaling policy for Amazon EC2 Auto Scaling.static interface
Contains capacity metric information for theCustomizedCapacityMetricSpecification
property of the AWS::AutoScaling::ScalingPolicy PredictiveScalingMetricSpecification property type.static interface
Contains load metric information for theCustomizedLoadMetricSpecification
property of the AWS::AutoScaling::ScalingPolicy PredictiveScalingMetricSpecification property type.static interface
Contains scaling metric information for theCustomizedScalingMetricSpecification
property of the AWS::AutoScaling::ScalingPolicy PredictiveScalingMetricSpecification property type.static interface
A structure that specifies a metric specification for theMetricSpecifications
property of the AWS::AutoScaling::ScalingPolicy PredictiveScalingConfiguration property type.static interface
Contains load metric information for thePredefinedLoadMetricSpecification
property of the AWS::AutoScaling::ScalingPolicy PredictiveScalingMetricSpecification property type.static interface
Contains metric pair information for thePredefinedMetricPairSpecification
property of the AWS::AutoScaling::ScalingPolicy PredictiveScalingMetricSpecification property type.static interface
Contains scaling metric information for thePredefinedScalingMetricSpecification
property of the AWS::AutoScaling::ScalingPolicy PredictiveScalingMetricSpecification property type.static interface
StepAdjustment
specifies a step adjustment for theStepAdjustments
property of the AWS::AutoScaling::ScalingPolicy resource.static interface
TargetTrackingConfiguration
is 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.InitializationMode
Nested classes/interfaces inherited from interface software.amazon.awscdk.core.IConstruct
IConstruct.Jsii$Default
Nested classes/interfaces inherited from interface software.constructs.IConstruct
software.constructs.IConstruct.Jsii$Default
Nested classes/interfaces inherited from interface software.amazon.awscdk.core.IInspectable
IInspectable.Jsii$Default, IInspectable.Jsii$Proxy
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final String
The CloudFormation resource type name for this resource class. -
Constructor Summary
ConstructorsModifierConstructorDescriptionCfnScalingPolicy
(Construct scope, String id, CfnScalingPolicyProps props) Create a newAWS::AutoScaling::ScalingPolicy
.protected
CfnScalingPolicy
(software.amazon.jsii.JsiiObject.InitializationMode initializationMode) protected
CfnScalingPolicy
(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.void
inspect
(TreeInspector inspector) Examines the CloudFormation resource and discloses attributes.renderProperties
(Map<String, Object> props) void
setAdjustmentType
(String value) Specifies how the scaling adjustment is interpreted (for example, an absolute number or a percentage).void
setAutoScalingGroupName
(String value) The name of the Auto Scaling group.void
setCooldown
(String value) A cooldown period, in seconds, that applies to a specific simple scaling policy.void
setEstimatedInstanceWarmup
(Number value) Not needed if the default instance warmup is defined for the group..void
setMetricAggregationType
(String value) The aggregation type for the CloudWatch metrics.void
setMinAdjustmentMagnitude
(Number value) The minimum value to scale by when the adjustment type isPercentChangeInCapacity
.void
setPolicyType
(String value) One of the following policy types:.void
A predictive scaling policy.void
A predictive scaling policy.void
setScalingAdjustment
(Number value) The amount by which to scale, based on the specified adjustment type.void
setStepAdjustments
(List<Object> value) A set of adjustments that enable you to scale based on the size of the alarm breach.void
setStepAdjustments
(IResolvable value) A set of adjustments that enable you to scale based on the size of the alarm breach.void
A target tracking scaling policy.void
A 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, validateProperties
Methods inherited from class software.amazon.awscdk.core.CfnRefElement
getRef
Methods inherited from class software.amazon.awscdk.core.CfnElement
getCreationStack, getLogicalId, getStack, isCfnElement, overrideLogicalId
Methods inherited from class software.amazon.awscdk.core.Construct
getNode, isConstruct, onPrepare, onSynthesize, onValidate, prepare, synthesize, validate
Methods inherited from class software.amazon.jsii.JsiiObject
jsiiAsyncCall, jsiiAsyncCall, jsiiCall, jsiiCall, jsiiGet, jsiiGet, jsiiSet, jsiiStaticCall, jsiiStaticCall, jsiiStaticGet, jsiiStaticGet, jsiiStaticSet, jsiiStaticSet
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
Methods 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:
inspect
in 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:
renderProperties
in classCfnResource
- Parameters:
props
- This parameter is required.
-
getAttrArn
-
getAttrPolicyName
Returns the name of a scaling policy. -
getCfnProperties
- Overrides:
getCfnProperties
in 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
StepScaling
orSimpleScaling
. 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
StepScaling
orSimpleScaling
. 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
TargetTrackingScaling
orStepScaling
.The default is to use the value for the default instance warmup defined for the group. If default instance warmup is null, then
EstimatedInstanceWarmup
falls 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
TargetTrackingScaling
orStepScaling
.The default is to use the value for the default instance warmup defined for the group. If default instance warmup is null, then
EstimatedInstanceWarmup
falls 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
MinAdjustmentMagnitude
of 2. If the group has 4 instances and the scaling policy is performed, 25 percent of 4 is 1. However, because you specified aMinAdjustmentMagnitude
of 2, Amazon EC2 Auto Scaling scales out the group by 2 instances.Valid only if the policy type is
StepScaling
orSimpleScaling
. 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
MinAdjustmentMagnitude
to 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
MinAdjustmentMagnitude
of 2. If the group has 4 instances and the scaling policy is performed, 25 percent of 4 is 1. However, because you specified aMinAdjustmentMagnitude
of 2, Amazon EC2 Auto Scaling scales out the group by 2 instances.Valid only if the policy type is
StepScaling
orSimpleScaling
. 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
MinAdjustmentMagnitude
to a value that is at least as large as your largest instance weight. -
getPolicyType
One of the following policy types:.TargetTrackingScaling
StepScaling
SimpleScaling
(default)PredictiveScaling
-
setPolicyType
One of the following policy types:.TargetTrackingScaling
StepScaling
SimpleScaling
(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:
ASGAverageCPUUtilization
ASGAverageNetworkIn
ASGAverageNetworkOut
ALBRequestCountPerTarget
If you specify
ALBRequestCountPerTarget
for the metric, you must specify theResourceLabel
property 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:
ASGAverageCPUUtilization
ASGAverageNetworkIn
ASGAverageNetworkOut
ALBRequestCountPerTarget
If you specify
ALBRequestCountPerTarget
for the metric, you must specify theResourceLabel
property 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:
ASGAverageCPUUtilization
ASGAverageNetworkIn
ASGAverageNetworkOut
ALBRequestCountPerTarget
If you specify
ALBRequestCountPerTarget
for the metric, you must specify theResourceLabel
property with thePredefinedMetricSpecification
.Required if the policy type is
TargetTrackingScaling
.
-