pub struct StepScalingPolicyConfiguration {
pub adjustment_type: Option<String>,
pub cooldown: Option<i64>,
pub metric_aggregation_type: Option<String>,
pub min_adjustment_magnitude: Option<i64>,
pub step_adjustments: Option<Vec<StepAdjustment>>,
}
Expand description
Represents a step scaling policy configuration to use with Application Auto Scaling.
Fields
adjustment_type: Option<String>
Specifies how the ScalingAdjustment
value in a StepAdjustment is interpreted (for example, an absolute number or a percentage). The valid values are ChangeInCapacity
, ExactCapacity
, and PercentChangeInCapacity
.
AdjustmentType
is required if you are adding a new step scaling policy configuration.
cooldown: Option<i64>
The amount of time, in seconds, to wait for a previous scaling activity to take effect.
With scale-out policies, the intention is to continuously (but not excessively) scale out. After Application Auto Scaling successfully scales out using a step scaling policy, it starts to calculate the cooldown time. The scaling policy won't increase the desired capacity again unless either a larger scale out is triggered or the cooldown period ends. While the cooldown period is in effect, capacity added by the initiating scale-out activity is calculated as part of the desired capacity for the next scale-out activity. For example, when an alarm triggers a step scaling policy to increase the capacity by 2, the scaling activity completes successfully, and a cooldown period starts. If the alarm triggers again during the cooldown period but at a more aggressive step adjustment of 3, the previous increase of 2 is considered part of the current capacity. Therefore, only 1 is added to the capacity.
With scale-in policies, the intention is to scale in conservatively to protect your application’s availability, so scale-in activities are blocked until the cooldown period has expired. However, if another alarm triggers a scale-out activity during the cooldown period after a scale-in activity, Application Auto Scaling scales out the target immediately. In this case, the cooldown period for the scale-in activity stops and doesn't complete.
Application Auto Scaling provides a default value of 300 for the following scalable targets:
-
ECS services
-
Spot Fleet requests
-
EMR clusters
-
AppStream 2.0 fleets
-
Aurora DB clusters
-
Amazon SageMaker endpoint variants
-
Custom resources
For all other scalable targets, the default value is 0:
-
DynamoDB tables
-
DynamoDB global secondary indexes
-
Amazon Comprehend document classification and entity recognizer endpoints
-
Lambda provisioned concurrency
-
Amazon Keyspaces tables
-
Amazon MSK broker storage
metric_aggregation_type: Option<String>
The aggregation type for the CloudWatch metrics. Valid values are Minimum
, Maximum
, and Average
. If the aggregation type is null, the value is treated as Average
.
min_adjustment_magnitude: Option<i64>
The minimum value to scale by when the adjustment type is PercentChangeInCapacity
. For example, suppose that you create a step scaling policy to scale out an Amazon ECS service by 25 percent and you specify a MinAdjustmentMagnitude
of 2. If the service has 4 tasks and the scaling policy is performed, 25 percent of 4 is 1. However, because you specified a MinAdjustmentMagnitude
of 2, Application Auto Scaling scales out the service by 2 tasks.
step_adjustments: Option<Vec<StepAdjustment>>
A set of adjustments that enable you to scale based on the size of the alarm breach.
At least one step adjustment is required if you are adding a new step scaling policy configuration.
Trait Implementations
sourceimpl Clone for StepScalingPolicyConfiguration
impl Clone for StepScalingPolicyConfiguration
sourcefn clone(&self) -> StepScalingPolicyConfiguration
fn clone(&self) -> StepScalingPolicyConfiguration
Returns a copy of the value. Read more
1.0.0 · sourcefn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from source
. Read more
sourceimpl Default for StepScalingPolicyConfiguration
impl Default for StepScalingPolicyConfiguration
sourcefn default() -> StepScalingPolicyConfiguration
fn default() -> StepScalingPolicyConfiguration
Returns the “default value” for a type. Read more
sourceimpl<'de> Deserialize<'de> for StepScalingPolicyConfiguration
impl<'de> Deserialize<'de> for StepScalingPolicyConfiguration
sourcefn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error> where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error> where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
sourceimpl PartialEq<StepScalingPolicyConfiguration> for StepScalingPolicyConfiguration
impl PartialEq<StepScalingPolicyConfiguration> for StepScalingPolicyConfiguration
sourcefn eq(&self, other: &StepScalingPolicyConfiguration) -> bool
fn eq(&self, other: &StepScalingPolicyConfiguration) -> bool
This method tests for self
and other
values to be equal, and is used
by ==
. Read more
sourcefn ne(&self, other: &StepScalingPolicyConfiguration) -> bool
fn ne(&self, other: &StepScalingPolicyConfiguration) -> bool
This method tests for !=
.
impl StructuralPartialEq for StepScalingPolicyConfiguration
Auto Trait Implementations
impl RefUnwindSafe for StepScalingPolicyConfiguration
impl Send for StepScalingPolicyConfiguration
impl Sync for StepScalingPolicyConfiguration
impl Unpin for StepScalingPolicyConfiguration
impl UnwindSafe for StepScalingPolicyConfiguration
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
sourceimpl<T> Instrument for T
impl<T> Instrument for T
sourcefn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
sourcefn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
sourceimpl<T> ToOwned for T where
T: Clone,
impl<T> ToOwned for T where
T: Clone,
type Owned = T
type Owned = T
The resulting type after obtaining ownership.
sourcefn clone_into(&self, target: &mut T)
fn clone_into(&self, target: &mut T)
toowned_clone_into
)Uses borrowed data to replace owned data, usually by cloning. Read more
sourceimpl<T> WithSubscriber for T
impl<T> WithSubscriber for T
sourcefn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> where
S: Into<Dispatch>,
fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> where
S: Into<Dispatch>,
Attaches the provided Subscriber
to this type, returning a
WithDispatch
wrapper. Read more
sourcefn with_current_subscriber(self) -> WithDispatch<Self>
fn with_current_subscriber(self) -> WithDispatch<Self>
Attaches the current default Subscriber
to this type, returning a
WithDispatch
wrapper. Read more