Documentation ¶
Index ¶
- func BaseScalableAttribute_IsConstruct(x interface{}) *bool
- func CfnScalableTarget_CFN_RESOURCE_TYPE_NAME() *string
- func CfnScalableTarget_IsCfnElement(x interface{}) *bool
- func CfnScalableTarget_IsCfnResource(construct constructs.IConstruct) *bool
- func CfnScalableTarget_IsConstruct(x interface{}) *bool
- func CfnScalingPolicy_CFN_RESOURCE_TYPE_NAME() *string
- func CfnScalingPolicy_IsCfnElement(x interface{}) *bool
- func CfnScalingPolicy_IsCfnResource(construct constructs.IConstruct) *bool
- func CfnScalingPolicy_IsConstruct(x interface{}) *bool
- func NewBaseScalableAttribute_Override(b BaseScalableAttribute, scope constructs.Construct, id *string, ...)
- func NewCfnScalableTarget_Override(c CfnScalableTarget, scope constructs.Construct, id *string, ...)
- func NewCfnScalingPolicy_Override(c CfnScalingPolicy, scope constructs.Construct, id *string, ...)
- func NewScalableTarget_Override(s ScalableTarget, scope constructs.Construct, id *string, ...)
- func NewSchedule_Override(s Schedule)
- func NewStepScalingAction_Override(s StepScalingAction, scope constructs.Construct, id *string, ...)
- func NewStepScalingPolicy_Override(s StepScalingPolicy, scope constructs.Construct, id *string, ...)
- func NewTargetTrackingScalingPolicy_Override(t TargetTrackingScalingPolicy, scope constructs.Construct, id *string, ...)
- func ScalableTarget_IsConstruct(x interface{}) *bool
- func ScalableTarget_IsResource(construct constructs.IConstruct) *bool
- func StepScalingAction_IsConstruct(x interface{}) *bool
- func StepScalingPolicy_IsConstruct(x interface{}) *bool
- func TargetTrackingScalingPolicy_IsConstruct(x interface{}) *bool
- type AdjustmentTier
- type AdjustmentType
- type BaseScalableAttribute
- type BaseScalableAttributeProps
- type BaseTargetTrackingProps
- type BasicStepScalingPolicyProps
- type BasicTargetTrackingScalingPolicyProps
- type CfnScalableTarget
- type CfnScalableTargetProps
- type CfnScalableTarget_ScalableTargetActionProperty
- type CfnScalableTarget_ScheduledActionProperty
- type CfnScalableTarget_SuspendedStateProperty
- type CfnScalingPolicy
- type CfnScalingPolicyProps
- type CfnScalingPolicy_CustomizedMetricSpecificationProperty
- type CfnScalingPolicy_MetricDimensionProperty
- type CfnScalingPolicy_PredefinedMetricSpecificationProperty
- type CfnScalingPolicy_StepAdjustmentProperty
- type CfnScalingPolicy_StepScalingPolicyConfigurationProperty
- type CfnScalingPolicy_TargetTrackingScalingPolicyConfigurationProperty
- type CronOptions
- type EnableScalingProps
- type IScalableTarget
- type MetricAggregationType
- type PredefinedMetric
- type ScalableTarget
- type ScalableTargetProps
- type ScalingInterval
- type ScalingSchedule
- type Schedule
- type ServiceNamespace
- type StepScalingAction
- type StepScalingActionProps
- type StepScalingPolicy
- type StepScalingPolicyProps
- type TargetTrackingScalingPolicy
- type TargetTrackingScalingPolicyProps
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func BaseScalableAttribute_IsConstruct ¶
func BaseScalableAttribute_IsConstruct(x interface{}) *bool
Checks if `x` is a construct.
Returns: true if `x` is an object created from a class which extends `Construct`. Deprecated: use `x instanceof Construct` instead
func CfnScalableTarget_CFN_RESOURCE_TYPE_NAME ¶
func CfnScalableTarget_CFN_RESOURCE_TYPE_NAME() *string
func CfnScalableTarget_IsCfnElement ¶
func CfnScalableTarget_IsCfnElement(x interface{}) *bool
Returns `true` if a construct is a stack element (i.e. part of the synthesized cloudformation template).
Uses duck-typing instead of `instanceof` to allow stack elements from different versions of this library to be included in the same stack.
Returns: The construct as a stack element or undefined if it is not a stack element. Experimental.
func CfnScalableTarget_IsCfnResource ¶
func CfnScalableTarget_IsCfnResource(construct constructs.IConstruct) *bool
Check whether the given construct is a CfnResource. Experimental.
func CfnScalableTarget_IsConstruct ¶
func CfnScalableTarget_IsConstruct(x interface{}) *bool
Checks if `x` is a construct.
Returns: true if `x` is an object created from a class which extends `Construct`. Deprecated: use `x instanceof Construct` instead
func CfnScalingPolicy_CFN_RESOURCE_TYPE_NAME ¶
func CfnScalingPolicy_CFN_RESOURCE_TYPE_NAME() *string
func CfnScalingPolicy_IsCfnElement ¶
func CfnScalingPolicy_IsCfnElement(x interface{}) *bool
Returns `true` if a construct is a stack element (i.e. part of the synthesized cloudformation template).
Uses duck-typing instead of `instanceof` to allow stack elements from different versions of this library to be included in the same stack.
Returns: The construct as a stack element or undefined if it is not a stack element. Experimental.
func CfnScalingPolicy_IsCfnResource ¶
func CfnScalingPolicy_IsCfnResource(construct constructs.IConstruct) *bool
Check whether the given construct is a CfnResource. Experimental.
func CfnScalingPolicy_IsConstruct ¶
func CfnScalingPolicy_IsConstruct(x interface{}) *bool
Checks if `x` is a construct.
Returns: true if `x` is an object created from a class which extends `Construct`. Deprecated: use `x instanceof Construct` instead
func NewBaseScalableAttribute_Override ¶
func NewBaseScalableAttribute_Override(b BaseScalableAttribute, scope constructs.Construct, id *string, props *BaseScalableAttributeProps)
Experimental.
func NewCfnScalableTarget_Override ¶
func NewCfnScalableTarget_Override(c CfnScalableTarget, scope constructs.Construct, id *string, props *CfnScalableTargetProps)
Create a new `AWS::ApplicationAutoScaling::ScalableTarget`.
func NewCfnScalingPolicy_Override ¶
func NewCfnScalingPolicy_Override(c CfnScalingPolicy, scope constructs.Construct, id *string, props *CfnScalingPolicyProps)
Create a new `AWS::ApplicationAutoScaling::ScalingPolicy`.
func NewScalableTarget_Override ¶
func NewScalableTarget_Override(s ScalableTarget, scope constructs.Construct, id *string, props *ScalableTargetProps)
Experimental.
func NewStepScalingAction_Override ¶
func NewStepScalingAction_Override(s StepScalingAction, scope constructs.Construct, id *string, props *StepScalingActionProps)
Experimental.
func NewStepScalingPolicy_Override ¶
func NewStepScalingPolicy_Override(s StepScalingPolicy, scope constructs.Construct, id *string, props *StepScalingPolicyProps)
Experimental.
func NewTargetTrackingScalingPolicy_Override ¶
func NewTargetTrackingScalingPolicy_Override(t TargetTrackingScalingPolicy, scope constructs.Construct, id *string, props *TargetTrackingScalingPolicyProps)
Experimental.
func ScalableTarget_IsConstruct ¶
func ScalableTarget_IsConstruct(x interface{}) *bool
Checks if `x` is a construct.
Returns: true if `x` is an object created from a class which extends `Construct`. Deprecated: use `x instanceof Construct` instead
func ScalableTarget_IsResource ¶
func ScalableTarget_IsResource(construct constructs.IConstruct) *bool
Check whether the given construct is a Resource. Experimental.
func StepScalingAction_IsConstruct ¶
func StepScalingAction_IsConstruct(x interface{}) *bool
Checks if `x` is a construct.
Returns: true if `x` is an object created from a class which extends `Construct`. Deprecated: use `x instanceof Construct` instead
func StepScalingPolicy_IsConstruct ¶
func StepScalingPolicy_IsConstruct(x interface{}) *bool
Checks if `x` is a construct.
Returns: true if `x` is an object created from a class which extends `Construct`. Deprecated: use `x instanceof Construct` instead
func TargetTrackingScalingPolicy_IsConstruct ¶
func TargetTrackingScalingPolicy_IsConstruct(x interface{}) *bool
Checks if `x` is a construct.
Returns: true if `x` is an object created from a class which extends `Construct`. Deprecated: use `x instanceof Construct` instead
Types ¶
type AdjustmentTier ¶
type AdjustmentTier struct { // What number to adjust the capacity with. // // The number is interpeted as an added capacity, a new fixed capacity or an // added percentage depending on the AdjustmentType value of the // StepScalingPolicy. // // Can be positive or negative. // Experimental. Adjustment *float64 `json:"adjustment"` // Lower bound where this scaling tier applies. // // The scaling tier applies if the difference between the metric // value and its alarm threshold is higher than this value. // Experimental. LowerBound *float64 `json:"lowerBound"` // Upper bound where this scaling tier applies. // // The scaling tier applies if the difference between the metric // value and its alarm threshold is lower than this value. // Experimental. UpperBound *float64 `json:"upperBound"` }
An adjustment. Experimental.
type AdjustmentType ¶
type AdjustmentType string
How adjustment numbers are interpreted. Experimental.
const ( AdjustmentType_CHANGE_IN_CAPACITY AdjustmentType = "CHANGE_IN_CAPACITY" AdjustmentType_PERCENT_CHANGE_IN_CAPACITY AdjustmentType = "PERCENT_CHANGE_IN_CAPACITY" AdjustmentType_EXACT_CAPACITY AdjustmentType = "EXACT_CAPACITY" )
type BaseScalableAttribute ¶
type BaseScalableAttribute interface { constructs.Construct Node() constructs.Node Props() *BaseScalableAttributeProps DoScaleOnMetric(id *string, props *BasicStepScalingPolicyProps) DoScaleOnSchedule(id *string, props *ScalingSchedule) DoScaleToTrackMetric(id *string, props *BasicTargetTrackingScalingPolicyProps) ToString() *string }
Represent an attribute for which autoscaling can be configured.
This class is basically a light wrapper around ScalableTarget, but with all methods protected instead of public so they can be selectively exposed and/or more specific versions of them can be exposed by derived classes for individual services support autoscaling.
Typical use cases:
- Hide away the PredefinedMetric enum for target tracking policies.
- Don't expose all scaling methods (for example Dynamo tables don't support Step Scaling, so the Dynamo subclass won't expose this method).
Experimental.
type BaseScalableAttributeProps ¶
type BaseScalableAttributeProps struct { // Maximum capacity to scale to. // Experimental. MaxCapacity *float64 `json:"maxCapacity"` // Minimum capacity to scale to. // Experimental. MinCapacity *float64 `json:"minCapacity"` // Scalable dimension of the attribute. // Experimental. Dimension *string `json:"dimension"` // Resource ID of the attribute. // Experimental. ResourceId *string `json:"resourceId"` // Role to use for scaling. // Experimental. Role awsiam.IRole `json:"role"` // Service namespace of the scalable attribute. // Experimental. ServiceNamespace ServiceNamespace `json:"serviceNamespace"` }
Properties for a ScalableTableAttribute. Experimental.
type BaseTargetTrackingProps ¶
type BaseTargetTrackingProps struct { // Indicates whether scale in by the target tracking policy is disabled. // // If the value is true, scale in is disabled and the target tracking policy // won't remove capacity from the scalable resource. Otherwise, scale in is // enabled and the target tracking policy can remove capacity from the // scalable resource. // Experimental. DisableScaleIn *bool `json:"disableScaleIn"` // A name for the scaling policy. // Experimental. PolicyName *string `json:"policyName"` // Period after a scale in activity completes before another scale in activity can start. // Experimental. ScaleInCooldown awscdk.Duration `json:"scaleInCooldown"` // Period after a scale out activity completes before another scale out activity can start. // Experimental. ScaleOutCooldown awscdk.Duration `json:"scaleOutCooldown"` }
Base interface for target tracking props.
Contains the attributes that are common to target tracking policies, except the ones relating to the metric and to the scalable target.
This interface is reused by more specific target tracking props objects in other services. Experimental.
type BasicStepScalingPolicyProps ¶
type BasicStepScalingPolicyProps struct { // Metric to scale on. // Experimental. Metric awscloudwatch.IMetric `json:"metric"` // The intervals for scaling. // // Maps a range of metric values to a particular scaling behavior. // Experimental. ScalingSteps *[]*ScalingInterval `json:"scalingSteps"` // How the adjustment numbers inside 'intervals' are interpreted. // Experimental. AdjustmentType AdjustmentType `json:"adjustmentType"` // Grace period after scaling activity. // // Subsequent scale outs during the cooldown period are squashed so that only // the biggest scale out happens. // // Subsequent scale ins during the cooldown period are ignored. // See: https://docs.aws.amazon.com/autoscaling/application/APIReference/API_StepScalingPolicyConfiguration.html // // Experimental. Cooldown awscdk.Duration `json:"cooldown"` // How many evaluation periods of the metric to wait before triggering a scaling action. // // Raising this value can be used to smooth out the metric, at the expense // of slower response times. // Experimental. EvaluationPeriods *float64 `json:"evaluationPeriods"` // Aggregation to apply to all data points over the evaluation periods. // // Only has meaning if `evaluationPeriods != 1`. // Experimental. MetricAggregationType MetricAggregationType `json:"metricAggregationType"` // Minimum absolute number to adjust capacity with as result of percentage scaling. // // Only when using AdjustmentType = PercentChangeInCapacity, this number controls // the minimum absolute effect size. // Experimental. MinAdjustmentMagnitude *float64 `json:"minAdjustmentMagnitude"` }
Experimental.
type BasicTargetTrackingScalingPolicyProps ¶
type BasicTargetTrackingScalingPolicyProps struct { // Indicates whether scale in by the target tracking policy is disabled. // // If the value is true, scale in is disabled and the target tracking policy // won't remove capacity from the scalable resource. Otherwise, scale in is // enabled and the target tracking policy can remove capacity from the // scalable resource. // Experimental. DisableScaleIn *bool `json:"disableScaleIn"` // A name for the scaling policy. // Experimental. PolicyName *string `json:"policyName"` // Period after a scale in activity completes before another scale in activity can start. // Experimental. ScaleInCooldown awscdk.Duration `json:"scaleInCooldown"` // Period after a scale out activity completes before another scale out activity can start. // Experimental. ScaleOutCooldown awscdk.Duration `json:"scaleOutCooldown"` // The target value for the metric. // Experimental. TargetValue *float64 `json:"targetValue"` // A custom metric for application autoscaling. // // The metric must track utilization. Scaling out will happen if the metric is higher than // the target value, scaling in will happen in the metric is lower than the target value. // // Exactly one of customMetric or predefinedMetric must be specified. // Experimental. CustomMetric awscloudwatch.IMetric `json:"customMetric"` // A predefined metric for application autoscaling. // // The metric must track utilization. Scaling out will happen if the metric is higher than // the target value, scaling in will happen in the metric is lower than the target value. // // Exactly one of customMetric or predefinedMetric must be specified. // Experimental. PredefinedMetric PredefinedMetric `json:"predefinedMetric"` // Identify the resource associated with the metric type. // // Only used for predefined metric ALBRequestCountPerTarget. // // TODO: EXAMPLE // // Experimental. ResourceLabel *string `json:"resourceLabel"` }
Properties for a Target Tracking policy that include the metric but exclude the target. Experimental.
type CfnScalableTarget ¶
type CfnScalableTarget interface { awscdk.CfnResource awscdk.IInspectable CfnOptions() awscdk.ICfnResourceOptions CfnProperties() *map[string]interface{} CfnResourceType() *string CreationStack() *[]*string LogicalId() *string MaxCapacity() *float64 SetMaxCapacity(val *float64) MinCapacity() *float64 SetMinCapacity(val *float64) Node() constructs.Node Ref() *string ResourceId() *string SetResourceId(val *string) RoleArn() *string SetRoleArn(val *string) ScalableDimension() *string SetScalableDimension(val *string) ScheduledActions() interface{} SetScheduledActions(val interface{}) ServiceNamespace() *string SetServiceNamespace(val *string) Stack() awscdk.Stack SuspendedState() interface{} SetSuspendedState(val interface{}) UpdatedProperites() *map[string]interface{} AddDeletionOverride(path *string) AddDependsOn(target awscdk.CfnResource) AddMetadata(key *string, value interface{}) AddOverride(path *string, value interface{}) AddPropertyDeletionOverride(propertyPath *string) AddPropertyOverride(propertyPath *string, value interface{}) ApplyRemovalPolicy(policy awscdk.RemovalPolicy, options *awscdk.RemovalPolicyOptions) GetAtt(attributeName *string) awscdk.Reference GetMetadata(key *string) interface{} Inspect(inspector awscdk.TreeInspector) OverrideLogicalId(newLogicalId *string) RenderProperties(props *map[string]interface{}) *map[string]interface{} ShouldSynthesize() *bool ToString() *string ValidateProperties(_properties interface{}) }
A CloudFormation `AWS::ApplicationAutoScaling::ScalableTarget`.
func NewCfnScalableTarget ¶
func NewCfnScalableTarget(scope constructs.Construct, id *string, props *CfnScalableTargetProps) CfnScalableTarget
Create a new `AWS::ApplicationAutoScaling::ScalableTarget`.
type CfnScalableTargetProps ¶
type CfnScalableTargetProps struct { // `AWS::ApplicationAutoScaling::ScalableTarget.MaxCapacity`. MaxCapacity *float64 `json:"maxCapacity"` // `AWS::ApplicationAutoScaling::ScalableTarget.MinCapacity`. MinCapacity *float64 `json:"minCapacity"` // `AWS::ApplicationAutoScaling::ScalableTarget.ResourceId`. ResourceId *string `json:"resourceId"` // `AWS::ApplicationAutoScaling::ScalableTarget.RoleARN`. RoleArn *string `json:"roleArn"` // `AWS::ApplicationAutoScaling::ScalableTarget.ScalableDimension`. ScalableDimension *string `json:"scalableDimension"` // `AWS::ApplicationAutoScaling::ScalableTarget.ServiceNamespace`. ServiceNamespace *string `json:"serviceNamespace"` // `AWS::ApplicationAutoScaling::ScalableTarget.ScheduledActions`. ScheduledActions interface{} `json:"scheduledActions"` // `AWS::ApplicationAutoScaling::ScalableTarget.SuspendedState`. SuspendedState interface{} `json:"suspendedState"` }
Properties for defining a `AWS::ApplicationAutoScaling::ScalableTarget`.
type CfnScalableTarget_ScheduledActionProperty ¶
type CfnScalableTarget_ScheduledActionProperty struct { // `CfnScalableTarget.ScheduledActionProperty.Schedule`. Schedule *string `json:"schedule"` // `CfnScalableTarget.ScheduledActionProperty.ScheduledActionName`. ScheduledActionName *string `json:"scheduledActionName"` // `CfnScalableTarget.ScheduledActionProperty.EndTime`. EndTime interface{} `json:"endTime"` // `CfnScalableTarget.ScheduledActionProperty.ScalableTargetAction`. ScalableTargetAction interface{} `json:"scalableTargetAction"` // `CfnScalableTarget.ScheduledActionProperty.StartTime`. StartTime interface{} `json:"startTime"` // `CfnScalableTarget.ScheduledActionProperty.Timezone`. Timezone *string `json:"timezone"` }
type CfnScalableTarget_SuspendedStateProperty ¶
type CfnScalableTarget_SuspendedStateProperty struct { // `CfnScalableTarget.SuspendedStateProperty.DynamicScalingInSuspended`. DynamicScalingInSuspended interface{} `json:"dynamicScalingInSuspended"` // `CfnScalableTarget.SuspendedStateProperty.DynamicScalingOutSuspended`. DynamicScalingOutSuspended interface{} `json:"dynamicScalingOutSuspended"` // `CfnScalableTarget.SuspendedStateProperty.ScheduledScalingSuspended`. ScheduledScalingSuspended interface{} `json:"scheduledScalingSuspended"` }
type CfnScalingPolicy ¶
type CfnScalingPolicy interface { awscdk.CfnResource awscdk.IInspectable CfnOptions() awscdk.ICfnResourceOptions CfnProperties() *map[string]interface{} CfnResourceType() *string CreationStack() *[]*string LogicalId() *string Node() constructs.Node PolicyName() *string SetPolicyName(val *string) PolicyType() *string SetPolicyType(val *string) Ref() *string ResourceId() *string SetResourceId(val *string) ScalableDimension() *string SetScalableDimension(val *string) ScalingTargetId() *string SetScalingTargetId(val *string) ServiceNamespace() *string SetServiceNamespace(val *string) Stack() awscdk.Stack StepScalingPolicyConfiguration() interface{} SetStepScalingPolicyConfiguration(val interface{}) TargetTrackingScalingPolicyConfiguration() interface{} SetTargetTrackingScalingPolicyConfiguration(val interface{}) UpdatedProperites() *map[string]interface{} AddDeletionOverride(path *string) AddDependsOn(target awscdk.CfnResource) AddMetadata(key *string, value interface{}) AddOverride(path *string, value interface{}) AddPropertyDeletionOverride(propertyPath *string) AddPropertyOverride(propertyPath *string, value interface{}) ApplyRemovalPolicy(policy awscdk.RemovalPolicy, options *awscdk.RemovalPolicyOptions) GetAtt(attributeName *string) awscdk.Reference GetMetadata(key *string) interface{} Inspect(inspector awscdk.TreeInspector) OverrideLogicalId(newLogicalId *string) RenderProperties(props *map[string]interface{}) *map[string]interface{} ShouldSynthesize() *bool ToString() *string ValidateProperties(_properties interface{}) }
A CloudFormation `AWS::ApplicationAutoScaling::ScalingPolicy`.
func NewCfnScalingPolicy ¶
func NewCfnScalingPolicy(scope constructs.Construct, id *string, props *CfnScalingPolicyProps) CfnScalingPolicy
Create a new `AWS::ApplicationAutoScaling::ScalingPolicy`.
type CfnScalingPolicyProps ¶
type CfnScalingPolicyProps struct { // `AWS::ApplicationAutoScaling::ScalingPolicy.PolicyName`. PolicyName *string `json:"policyName"` // `AWS::ApplicationAutoScaling::ScalingPolicy.PolicyType`. PolicyType *string `json:"policyType"` // `AWS::ApplicationAutoScaling::ScalingPolicy.ResourceId`. ResourceId *string `json:"resourceId"` // `AWS::ApplicationAutoScaling::ScalingPolicy.ScalableDimension`. ScalableDimension *string `json:"scalableDimension"` // `AWS::ApplicationAutoScaling::ScalingPolicy.ScalingTargetId`. ScalingTargetId *string `json:"scalingTargetId"` // `AWS::ApplicationAutoScaling::ScalingPolicy.ServiceNamespace`. ServiceNamespace *string `json:"serviceNamespace"` // `AWS::ApplicationAutoScaling::ScalingPolicy.StepScalingPolicyConfiguration`. StepScalingPolicyConfiguration interface{} `json:"stepScalingPolicyConfiguration"` // `AWS::ApplicationAutoScaling::ScalingPolicy.TargetTrackingScalingPolicyConfiguration`. TargetTrackingScalingPolicyConfiguration interface{} `json:"targetTrackingScalingPolicyConfiguration"` }
Properties for defining a `AWS::ApplicationAutoScaling::ScalingPolicy`.
type CfnScalingPolicy_CustomizedMetricSpecificationProperty ¶
type CfnScalingPolicy_CustomizedMetricSpecificationProperty struct { // `CfnScalingPolicy.CustomizedMetricSpecificationProperty.MetricName`. MetricName *string `json:"metricName"` // `CfnScalingPolicy.CustomizedMetricSpecificationProperty.Namespace`. Namespace *string `json:"namespace"` // `CfnScalingPolicy.CustomizedMetricSpecificationProperty.Statistic`. Statistic *string `json:"statistic"` // `CfnScalingPolicy.CustomizedMetricSpecificationProperty.Dimensions`. Dimensions interface{} `json:"dimensions"` // `CfnScalingPolicy.CustomizedMetricSpecificationProperty.Unit`. Unit *string `json:"unit"` }
type CfnScalingPolicy_PredefinedMetricSpecificationProperty ¶
type CfnScalingPolicy_PredefinedMetricSpecificationProperty struct { // `CfnScalingPolicy.PredefinedMetricSpecificationProperty.PredefinedMetricType`. PredefinedMetricType *string `json:"predefinedMetricType"` // `CfnScalingPolicy.PredefinedMetricSpecificationProperty.ResourceLabel`. ResourceLabel *string `json:"resourceLabel"` }
type CfnScalingPolicy_StepAdjustmentProperty ¶
type CfnScalingPolicy_StepAdjustmentProperty struct { // `CfnScalingPolicy.StepAdjustmentProperty.ScalingAdjustment`. ScalingAdjustment *float64 `json:"scalingAdjustment"` // `CfnScalingPolicy.StepAdjustmentProperty.MetricIntervalLowerBound`. MetricIntervalLowerBound *float64 `json:"metricIntervalLowerBound"` // `CfnScalingPolicy.StepAdjustmentProperty.MetricIntervalUpperBound`. MetricIntervalUpperBound *float64 `json:"metricIntervalUpperBound"` }
type CfnScalingPolicy_StepScalingPolicyConfigurationProperty ¶
type CfnScalingPolicy_StepScalingPolicyConfigurationProperty struct { // `CfnScalingPolicy.StepScalingPolicyConfigurationProperty.AdjustmentType`. AdjustmentType *string `json:"adjustmentType"` // `CfnScalingPolicy.StepScalingPolicyConfigurationProperty.Cooldown`. Cooldown *float64 `json:"cooldown"` // `CfnScalingPolicy.StepScalingPolicyConfigurationProperty.MetricAggregationType`. MetricAggregationType *string `json:"metricAggregationType"` // `CfnScalingPolicy.StepScalingPolicyConfigurationProperty.MinAdjustmentMagnitude`. MinAdjustmentMagnitude *float64 `json:"minAdjustmentMagnitude"` // `CfnScalingPolicy.StepScalingPolicyConfigurationProperty.StepAdjustments`. StepAdjustments interface{} `json:"stepAdjustments"` }
type CfnScalingPolicy_TargetTrackingScalingPolicyConfigurationProperty ¶
type CfnScalingPolicy_TargetTrackingScalingPolicyConfigurationProperty struct { // `CfnScalingPolicy.TargetTrackingScalingPolicyConfigurationProperty.TargetValue`. TargetValue *float64 `json:"targetValue"` // `CfnScalingPolicy.TargetTrackingScalingPolicyConfigurationProperty.CustomizedMetricSpecification`. CustomizedMetricSpecification interface{} `json:"customizedMetricSpecification"` // `CfnScalingPolicy.TargetTrackingScalingPolicyConfigurationProperty.DisableScaleIn`. DisableScaleIn interface{} `json:"disableScaleIn"` // `CfnScalingPolicy.TargetTrackingScalingPolicyConfigurationProperty.PredefinedMetricSpecification`. PredefinedMetricSpecification interface{} `json:"predefinedMetricSpecification"` // `CfnScalingPolicy.TargetTrackingScalingPolicyConfigurationProperty.ScaleInCooldown`. ScaleInCooldown *float64 `json:"scaleInCooldown"` // `CfnScalingPolicy.TargetTrackingScalingPolicyConfigurationProperty.ScaleOutCooldown`. ScaleOutCooldown *float64 `json:"scaleOutCooldown"` }
type CronOptions ¶
type CronOptions struct { // The day of the month to run this rule at. // Experimental. Day *string `json:"day"` // The hour to run this rule at. // Experimental. Hour *string `json:"hour"` // The minute to run this rule at. // Experimental. Minute *string `json:"minute"` // The month to run this rule at. // Experimental. Month *string `json:"month"` // The day of the week to run this rule at. // Experimental. WeekDay *string `json:"weekDay"` // The year to run this rule at. // Experimental. Year *string `json:"year"` }
Options to configure a cron expression.
All fields are strings so you can use complex expressions. Absence of a field implies '*' or '?', whichever one is appropriate. See: https://docs.aws.amazon.com/AmazonCloudWatch/latest/events/ScheduledEvents.html#CronExpressions
Experimental.
type EnableScalingProps ¶
type EnableScalingProps struct { // Maximum capacity to scale to. // Experimental. MaxCapacity *float64 `json:"maxCapacity"` // Minimum capacity to scale to. // Experimental. MinCapacity *float64 `json:"minCapacity"` }
Properties for enabling Application Auto Scaling. Experimental.
type IScalableTarget ¶
type IScalableTarget interface { awscdk.IResource // Experimental. ScalableTargetId() *string }
Experimental.
func ScalableTarget_FromScalableTargetId ¶
func ScalableTarget_FromScalableTargetId(scope constructs.Construct, id *string, scalableTargetId *string) IScalableTarget
Experimental.
type MetricAggregationType ¶
type MetricAggregationType string
How the scaling metric is going to be aggregated. Experimental.
const ( MetricAggregationType_AVERAGE MetricAggregationType = "AVERAGE" MetricAggregationType_MINIMUM MetricAggregationType = "MINIMUM" MetricAggregationType_MAXIMUM MetricAggregationType = "MAXIMUM" )
type PredefinedMetric ¶
type PredefinedMetric string
One of the predefined autoscaling metrics. Experimental.
const ( PredefinedMetric_DYNAMODB_READ_CAPACITY_UTILIZATION PredefinedMetric = "DYNAMODB_READ_CAPACITY_UTILIZATION" PredefinedMetric_DYANMODB_WRITE_CAPACITY_UTILIZATION PredefinedMetric = "DYANMODB_WRITE_CAPACITY_UTILIZATION" PredefinedMetric_ALB_REQUEST_COUNT_PER_TARGET PredefinedMetric = "ALB_REQUEST_COUNT_PER_TARGET" PredefinedMetric_RDS_READER_AVERAGE_CPU_UTILIZATION PredefinedMetric = "RDS_READER_AVERAGE_CPU_UTILIZATION" PredefinedMetric_RDS_READER_AVERAGE_DATABASE_CONNECTIONS PredefinedMetric = "RDS_READER_AVERAGE_DATABASE_CONNECTIONS" PredefinedMetric_EC2_SPOT_FLEET_REQUEST_AVERAGE_CPU_UTILIZATION PredefinedMetric = "EC2_SPOT_FLEET_REQUEST_AVERAGE_CPU_UTILIZATION" PredefinedMetric_EC2_SPOT_FLEET_REQUEST_AVERAGE_NETWORK_IN PredefinedMetric = "EC2_SPOT_FLEET_REQUEST_AVERAGE_NETWORK_IN" PredefinedMetric_EC2_SPOT_FLEET_REQUEST_AVERAGE_NETWORK_OUT PredefinedMetric = "EC2_SPOT_FLEET_REQUEST_AVERAGE_NETWORK_OUT" PredefinedMetric_SAGEMAKER_VARIANT_INVOCATIONS_PER_INSTANCE PredefinedMetric = "SAGEMAKER_VARIANT_INVOCATIONS_PER_INSTANCE" PredefinedMetric_ECS_SERVICE_AVERAGE_CPU_UTILIZATION PredefinedMetric = "ECS_SERVICE_AVERAGE_CPU_UTILIZATION" PredefinedMetric_ECS_SERVICE_AVERAGE_MEMORY_UTILIZATION PredefinedMetric = "ECS_SERVICE_AVERAGE_MEMORY_UTILIZATION" PredefinedMetric_LAMBDA_PROVISIONED_CONCURRENCY_UTILIZATION PredefinedMetric = "LAMBDA_PROVISIONED_CONCURRENCY_UTILIZATION" PredefinedMetric_KAFKA_BROKER_STORAGE_UTILIZATION PredefinedMetric = "KAFKA_BROKER_STORAGE_UTILIZATION" )
type ScalableTarget ¶
type ScalableTarget interface { awscdk.Resource IScalableTarget Env() *awscdk.ResourceEnvironment Node() constructs.Node PhysicalName() *string Role() awsiam.IRole ScalableTargetId() *string Stack() awscdk.Stack AddToRolePolicy(statement awsiam.PolicyStatement) ApplyRemovalPolicy(policy awscdk.RemovalPolicy) GeneratePhysicalName() *string GetResourceArnAttribute(arnAttr *string, arnComponents *awscdk.ArnComponents) *string GetResourceNameAttribute(nameAttr *string) *string ScaleOnMetric(id *string, props *BasicStepScalingPolicyProps) StepScalingPolicy ScaleOnSchedule(id *string, action *ScalingSchedule) ScaleToTrackMetric(id *string, props *BasicTargetTrackingScalingPolicyProps) TargetTrackingScalingPolicy ToString() *string }
Define a scalable target. Experimental.
func NewScalableTarget ¶
func NewScalableTarget(scope constructs.Construct, id *string, props *ScalableTargetProps) ScalableTarget
Experimental.
type ScalableTargetProps ¶
type ScalableTargetProps struct { // The maximum value that Application Auto Scaling can use to scale a target during a scaling activity. // Experimental. MaxCapacity *float64 `json:"maxCapacity"` // The minimum value that Application Auto Scaling can use to scale a target during a scaling activity. // Experimental. MinCapacity *float64 `json:"minCapacity"` // The resource identifier to associate with this scalable target. // // This string consists of the resource type and unique identifier. // // TODO: EXAMPLE // // See: https://docs.aws.amazon.com/autoscaling/application/APIReference/API_RegisterScalableTarget.html // // Experimental. ResourceId *string `json:"resourceId"` // The scalable dimension that's associated with the scalable target. // // Specify the service namespace, resource type, and scaling property. // // TODO: EXAMPLE // // See: https://docs.aws.amazon.com/autoscaling/application/APIReference/API_ScalingPolicy.html // // Experimental. ScalableDimension *string `json:"scalableDimension"` // The namespace of the AWS service that provides the resource or custom-resource for a resource provided by your own application or service. // // For valid AWS service namespace values, see the RegisterScalableTarget // action in the Application Auto Scaling API Reference. // See: https://docs.aws.amazon.com/autoscaling/application/APIReference/API_RegisterScalableTarget.html // // Experimental. ServiceNamespace ServiceNamespace `json:"serviceNamespace"` // Role that allows Application Auto Scaling to modify your scalable target. // Experimental. Role awsiam.IRole `json:"role"` }
Properties for a scalable target. Experimental.
type ScalingInterval ¶
type ScalingInterval struct { // The capacity adjustment to apply in this interval. // // The number is interpreted differently based on AdjustmentType: // // - ChangeInCapacity: add the adjustment to the current capacity. // The number can be positive or negative. // - PercentChangeInCapacity: add or remove the given percentage of the current // capacity to itself. The number can be in the range [-100..100]. // - ExactCapacity: set the capacity to this number. The number must // be positive. // Experimental. Change *float64 `json:"change"` // The lower bound of the interval. // // The scaling adjustment will be applied if the metric is higher than this value. // Experimental. Lower *float64 `json:"lower"` // The upper bound of the interval. // // The scaling adjustment will be applied if the metric is lower than this value. // Experimental. Upper *float64 `json:"upper"` }
A range of metric values in which to apply a certain scaling operation. Experimental.
type ScalingSchedule ¶
type ScalingSchedule struct { // When to perform this action. // Experimental. Schedule Schedule `json:"schedule"` // When this scheduled action expires. // Experimental. EndTime *time.Time `json:"endTime"` // The new maximum capacity. // // During the scheduled time, the current capacity is above the maximum // capacity, Application Auto Scaling scales in to the maximum capacity. // // At least one of maxCapacity and minCapacity must be supplied. // Experimental. MaxCapacity *float64 `json:"maxCapacity"` // The new minimum capacity. // // During the scheduled time, if the current capacity is below the minimum // capacity, Application Auto Scaling scales out to the minimum capacity. // // At least one of maxCapacity and minCapacity must be supplied. // Experimental. MinCapacity *float64 `json:"minCapacity"` // When this scheduled action becomes active. // Experimental. StartTime *time.Time `json:"startTime"` }
A scheduled scaling action. Experimental.
type Schedule ¶
type Schedule interface {
ExpressionString() *string
}
Schedule for scheduled scaling actions. Experimental.
func Schedule_At ¶
Construct a Schedule from a moment in time. Experimental.
func Schedule_Cron ¶
func Schedule_Cron(options *CronOptions) Schedule
Create a schedule from a set of cron fields. Experimental.
func Schedule_Expression ¶
Construct a schedule from a literal schedule expression. Experimental.
func Schedule_Rate ¶
func Schedule_Rate(duration awscdk.Duration) Schedule
Construct a schedule from an interval and a time unit. Experimental.
type ServiceNamespace ¶
type ServiceNamespace string
The service that supports Application AutoScaling. Experimental.
const ( ServiceNamespace_ECS ServiceNamespace = "ECS" ServiceNamespace_ELASTIC_MAP_REDUCE ServiceNamespace = "ELASTIC_MAP_REDUCE" ServiceNamespace_EC2 ServiceNamespace = "EC2" ServiceNamespace_APPSTREAM ServiceNamespace = "APPSTREAM" ServiceNamespace_DYNAMODB ServiceNamespace = "DYNAMODB" ServiceNamespace_RDS ServiceNamespace = "RDS" ServiceNamespace_SAGEMAKER ServiceNamespace = "SAGEMAKER" ServiceNamespace_CUSTOM_RESOURCE ServiceNamespace = "CUSTOM_RESOURCE" ServiceNamespace_LAMBDA ServiceNamespace = "LAMBDA" ServiceNamespace_COMPREHEND ServiceNamespace = "COMPREHEND" ServiceNamespace_KAFKA ServiceNamespace = "KAFKA" )
type StepScalingAction ¶
type StepScalingAction interface { constructs.Construct Node() constructs.Node ScalingPolicyArn() *string AddAdjustment(adjustment *AdjustmentTier) ToString() *string }
Define a step scaling action.
This kind of scaling policy adjusts the target capacity in configurable steps. The size of the step is configurable based on the metric's distance to its alarm threshold.
This Action must be used as the target of a CloudWatch alarm to take effect. Experimental.
func NewStepScalingAction ¶
func NewStepScalingAction(scope constructs.Construct, id *string, props *StepScalingActionProps) StepScalingAction
Experimental.
type StepScalingActionProps ¶
type StepScalingActionProps struct { // The scalable target. // Experimental. ScalingTarget IScalableTarget `json:"scalingTarget"` // How the adjustment numbers are interpreted. // Experimental. AdjustmentType AdjustmentType `json:"adjustmentType"` // Grace period after scaling activity. // // For scale out policies, multiple scale outs during the cooldown period are // squashed so that only the biggest scale out happens. // // For scale in policies, subsequent scale ins during the cooldown period are // ignored. // See: https://docs.aws.amazon.com/autoscaling/application/APIReference/API_StepScalingPolicyConfiguration.html // // Experimental. Cooldown awscdk.Duration `json:"cooldown"` // The aggregation type for the CloudWatch metrics. // Experimental. MetricAggregationType MetricAggregationType `json:"metricAggregationType"` // Minimum absolute number to adjust capacity with as result of percentage scaling. // // Only when using AdjustmentType = PercentChangeInCapacity, this number controls // the minimum absolute effect size. // Experimental. MinAdjustmentMagnitude *float64 `json:"minAdjustmentMagnitude"` // A name for the scaling policy. // Experimental. PolicyName *string `json:"policyName"` }
Properties for a scaling policy. Experimental.
type StepScalingPolicy ¶
type StepScalingPolicy interface { constructs.Construct LowerAction() StepScalingAction LowerAlarm() awscloudwatch.Alarm Node() constructs.Node UpperAction() StepScalingAction UpperAlarm() awscloudwatch.Alarm ToString() *string }
Define a scaling strategy which scales depending on absolute values of some metric.
You can specify the scaling behavior for various values of the metric.
Implemented using one or more CloudWatch alarms and Step Scaling Policies. Experimental.
func NewStepScalingPolicy ¶
func NewStepScalingPolicy(scope constructs.Construct, id *string, props *StepScalingPolicyProps) StepScalingPolicy
Experimental.
type StepScalingPolicyProps ¶
type StepScalingPolicyProps struct { // Metric to scale on. // Experimental. Metric awscloudwatch.IMetric `json:"metric"` // The intervals for scaling. // // Maps a range of metric values to a particular scaling behavior. // Experimental. ScalingSteps *[]*ScalingInterval `json:"scalingSteps"` // How the adjustment numbers inside 'intervals' are interpreted. // Experimental. AdjustmentType AdjustmentType `json:"adjustmentType"` // Grace period after scaling activity. // // Subsequent scale outs during the cooldown period are squashed so that only // the biggest scale out happens. // // Subsequent scale ins during the cooldown period are ignored. // See: https://docs.aws.amazon.com/autoscaling/application/APIReference/API_StepScalingPolicyConfiguration.html // // Experimental. Cooldown awscdk.Duration `json:"cooldown"` // How many evaluation periods of the metric to wait before triggering a scaling action. // // Raising this value can be used to smooth out the metric, at the expense // of slower response times. // Experimental. EvaluationPeriods *float64 `json:"evaluationPeriods"` // Aggregation to apply to all data points over the evaluation periods. // // Only has meaning if `evaluationPeriods != 1`. // Experimental. MetricAggregationType MetricAggregationType `json:"metricAggregationType"` // Minimum absolute number to adjust capacity with as result of percentage scaling. // // Only when using AdjustmentType = PercentChangeInCapacity, this number controls // the minimum absolute effect size. // Experimental. MinAdjustmentMagnitude *float64 `json:"minAdjustmentMagnitude"` // The scaling target. // Experimental. ScalingTarget IScalableTarget `json:"scalingTarget"` }
Experimental.
type TargetTrackingScalingPolicy ¶
type TargetTrackingScalingPolicy interface { constructs.Construct Node() constructs.Node ScalingPolicyArn() *string ToString() *string }
Experimental.
func NewTargetTrackingScalingPolicy ¶
func NewTargetTrackingScalingPolicy(scope constructs.Construct, id *string, props *TargetTrackingScalingPolicyProps) TargetTrackingScalingPolicy
Experimental.
type TargetTrackingScalingPolicyProps ¶
type TargetTrackingScalingPolicyProps struct { // Indicates whether scale in by the target tracking policy is disabled. // // If the value is true, scale in is disabled and the target tracking policy // won't remove capacity from the scalable resource. Otherwise, scale in is // enabled and the target tracking policy can remove capacity from the // scalable resource. // Experimental. DisableScaleIn *bool `json:"disableScaleIn"` // A name for the scaling policy. // Experimental. PolicyName *string `json:"policyName"` // Period after a scale in activity completes before another scale in activity can start. // Experimental. ScaleInCooldown awscdk.Duration `json:"scaleInCooldown"` // Period after a scale out activity completes before another scale out activity can start. // Experimental. ScaleOutCooldown awscdk.Duration `json:"scaleOutCooldown"` // The target value for the metric. // Experimental. TargetValue *float64 `json:"targetValue"` // A custom metric for application autoscaling. // // The metric must track utilization. Scaling out will happen if the metric is higher than // the target value, scaling in will happen in the metric is lower than the target value. // // Exactly one of customMetric or predefinedMetric must be specified. // Experimental. CustomMetric awscloudwatch.IMetric `json:"customMetric"` // A predefined metric for application autoscaling. // // The metric must track utilization. Scaling out will happen if the metric is higher than // the target value, scaling in will happen in the metric is lower than the target value. // // Exactly one of customMetric or predefinedMetric must be specified. // Experimental. PredefinedMetric PredefinedMetric `json:"predefinedMetric"` // Identify the resource associated with the metric type. // // Only used for predefined metric ALBRequestCountPerTarget. // // TODO: EXAMPLE // // Experimental. ResourceLabel *string `json:"resourceLabel"` // Experimental. ScalingTarget IScalableTarget `json:"scalingTarget"` }
Properties for a concrete TargetTrackingPolicy.
Adds the scalingTarget. Experimental.