scaling_policies
Creates, updates, deletes or gets a scaling_policy resource or lists scaling_policies in a region
Overview
| Name | scaling_policies |
| Type | Resource |
| Description | The ``AWS::ApplicationAutoScaling::ScalingPolicy`` resource defines a scaling policy that Application Auto Scaling uses to adjust the capacity of a scalable target. For more information, see [Target tracking scaling policies](https://docs.aws.amazon.com/autoscaling/application/userguide/application-auto-scaling-target-tracking.html) and [Step scaling policies](https://docs.aws.amazon.com/autoscaling/application/userguide/application-auto-scaling-step-scaling-policies.html) in the *Application Auto Scaling User Guide*. |
| Id | awscc.applicationautoscaling.scaling_policies |
Fields
| Name | Datatype | Description |
|---|---|---|
policy_type | string | The scaling policy type.<br />The following policy types are supported: <br />``TargetTrackingScaling``—Not supported for Amazon EMR<br />``StepScaling``—Not supported for DynamoDB, Amazon Comprehend, Lambda, Amazon Keyspaces, Amazon MSK, Amazon ElastiCache, or Neptune.<br />``PredictiveScaling``—Only supported for Amazon ECS |
resource_id | string | The identifier of the resource associated with the scaling policy. This string consists of the resource type and unique identifier.<br />+ ECS service - The resource type is ``service`` and the unique identifier is the cluster name and service name. Example: ``service/my-cluster/my-service``.<br />+ Spot Fleet - The resource type is ``spot-fleet-request`` and the unique identifier is the Spot Fleet request ID. Example: ``spot-fleet-request/sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE``.<br />+ EMR cluster - The resource type is ``instancegroup`` and the unique identifier is the cluster ID and instance group ID. Example: ``instancegroup/j-2EEZNYKUA1NTV/ig-1791Y4E1L8YI0``.<br />+ AppStream 2.0 fleet - The resource type is ``fleet`` and the unique identifier is the fleet name. Example: ``fleet/sample-fleet``.<br />+ DynamoDB table - The resource type is ``table`` and the unique identifier is the table name. Example: ``table/my-table``.<br />+ DynamoDB global secondary index - The resource type is ``index`` and the unique identifier is the index name. Example: ``table/my-table/index/my-table-index``.<br />+ Aurora DB cluster - The resource type is ``cluster`` and the unique identifier is the cluster name. Example: ``cluster:my-db-cluster``.<br />+ SageMaker endpoint variant - The resource type is ``variant`` and the unique identifier is the resource ID. Example: ``endpoint/my-end-point/variant/KMeansClustering``.<br />+ Custom resources are not supported with a resource type. This parameter must specify the ``OutputValue`` from the CloudFormation template stack used to access the resources. The unique identifier is defined by the service provider. More information is available in our [GitHub repository](https://docs.aws.amazon.com/https://github.com/aws/aws-auto-scaling-custom-resource).<br />+ Amazon Comprehend document classification endpoint - The resource type and unique identifier are specified using the endpoint ARN. Example: ``arn:aws:comprehend:us-west-2:123456789012:document-classifier-endpoint/EXAMPLE``.<br />+ Amazon Comprehend entity recognizer endpoint - The resource type and unique identifier are specified using the endpoint ARN. Example: ``arn:aws:comprehend:us-west-2:123456789012:entity-recognizer-endpoint/EXAMPLE``.<br />+ Lambda provisioned concurrency - The resource type is ``function`` and the unique identifier is the function name with a function version or alias name suffix that is not ``$LATEST``. Example: ``function:my-function:prod`` or ``function:my-function:1``.<br />+ Amazon Keyspaces table - The resource type is ``table`` and the unique identifier is the table name. Example: ``keyspace/mykeyspace/table/mytable``.<br />+ Amazon MSK cluster - The resource type and unique identifier are specified using the cluster ARN. Example: ``arn:aws:kafka:us-east-1:123456789012:cluster/demo-cluster-1/6357e0b2-0e6a-4b86-a0b4-70df934c2e31-5``.<br />+ Amazon ElastiCache replication group - The resource type is ``replication-group`` and the unique identifier is the replication group name. Example: ``replication-group/mycluster``.<br />+ Amazon ElastiCache cache cluster - The resource type is ``cache-cluster`` and the unique identifier is the cache cluster name. Example: ``cache-cluster/mycluster``.<br />+ Neptune cluster - The resource type is ``cluster`` and the unique identifier is the cluster name. Example: ``cluster:mycluster``.<br />+ SageMaker serverless endpoint - The resource type is ``variant`` and the unique identifier is the resource ID. Example: ``endpoint/my-end-point/variant/KMeansClustering``.<br />+ SageMaker inference component - The resource type is ``inference-component`` and the unique identifier is the resource ID. Example: ``inference-component/my-inference-component``.<br />+ Pool of WorkSpaces - The resource type is ``workspacespool`` and the unique identifier is the pool ID. Example: ``workspacespool/wspool-123456``. |
scaling_target_id | string | The CloudFormation-generated ID of an Application Auto Scaling scalable target. For more information about the ID, see the Return Value section of the ``AWS::ApplicationAutoScaling::ScalableTarget`` resource.<br />You must specify either the ``ScalingTargetId`` property, or the ``ResourceId``, ``ScalableDimension``, and ``ServiceNamespace`` properties, but not both. |
policy_name | string | The name of the scaling policy.<br />Updates to the name of a target tracking scaling policy are not supported, unless you also update the metric used for scaling. To change only a target tracking scaling policy's name, first delete the policy by removing the existing ``AWS::ApplicationAutoScaling::ScalingPolicy`` resource from the template and updating the stack. Then, recreate the resource with the same settings and a different name. |
service_namespace | string | The namespace of the AWS service that provides the resource, or a ``custom-resource``. |
scalable_dimension | string | The scalable dimension. This string consists of the service namespace, resource type, and scaling property.<br />+ ``ecs:service:DesiredCount`` - The task count of an ECS service.<br />+ ``elasticmapreduce:instancegroup:InstanceCount`` - The instance count of an EMR Instance Group.<br />+ ``ec2:spot-fleet-request:TargetCapacity`` - The target capacity of a Spot Fleet.<br />+ ``appstream:fleet:DesiredCapacity`` - The capacity of an AppStream 2.0 fleet.<br />+ ``dynamodb:table:ReadCapacityUnits`` - The provisioned read capacity for a DynamoDB table.<br />+ ``dynamodb:table:WriteCapacityUnits`` - The provisioned write capacity for a DynamoDB table.<br />+ ``dynamodb:index:ReadCapacityUnits`` - The provisioned read capacity for a DynamoDB global secondary index.<br />+ ``dynamodb:index:WriteCapacityUnits`` - The provisioned write capacity for a DynamoDB global secondary index.<br />+ ``rds:cluster:ReadReplicaCount`` - The count of Aurora Replicas in an Aurora DB cluster. Available for Aurora MySQL-compatible edition and Aurora PostgreSQL-compatible edition.<br />+ ``sagemaker:variant:DesiredInstanceCount`` - The number of EC2 instances for a SageMaker model endpoint variant.<br />+ ``custom-resource:ResourceType:Property`` - The scalable dimension for a custom resource provided by your own application or service.<br />+ ``comprehend:document-classifier-endpoint:DesiredInferenceUnits`` - The number of inference units for an Amazon Comprehend document classification endpoint.<br />+ ``comprehend:entity-recognizer-endpoint:DesiredInferenceUnits`` - The number of inference units for an Amazon Comprehend entity recognizer endpoint.<br />+ ``lambda:function:ProvisionedConcurrency`` - The provisioned concurrency for a Lambda function.<br />+ ``cassandra:table:ReadCapacityUnits`` - The provisioned read capacity for an Amazon Keyspaces table.<br />+ ``cassandra:table:WriteCapacityUnits`` - The provisioned write capacity for an Amazon Keyspaces table.<br />+ ``kafka:broker-storage:VolumeSize`` - The provisioned volume size (in GiB) for brokers in an Amazon MSK cluster.<br />+ ``elasticache:cache-cluster:Nodes`` - The number of nodes for an Amazon ElastiCache cache cluster.<br />+ ``elasticache:replication-group:NodeGroups`` - The number of node groups for an Amazon ElastiCache replication group.<br />+ ``elasticache:replication-group:Replicas`` - The number of replicas per node group for an Amazon ElastiCache replication group.<br />+ ``neptune:cluster:ReadReplicaCount`` - The count of read replicas in an Amazon Neptune DB cluster.<br />+ ``sagemaker:variant:DesiredProvisionedConcurrency`` - The provisioned concurrency for a SageMaker serverless endpoint.<br />+ ``sagemaker:inference-component:DesiredCopyCount`` - The number of copies across an endpoint for a SageMaker inference component.<br />+ ``workspaces:workspacespool:DesiredUserSessions`` - The number of user sessions for the WorkSpaces in the pool. |
target_tracking_scaling_policy_configuration | object | A target tracking scaling policy. |
arn | string | |
step_scaling_policy_configuration | object | A step scaling policy. |
predictive_scaling_policy_configuration | object | The predictive scaling policy configuration. |
region | string | AWS region. |
For more information, see AWS::ApplicationAutoScaling::ScalingPolicy.
Methods
| Name | Accessible by | Required Params |
|---|---|---|
create_resource | INSERT | PolicyName, PolicyType, region |
delete_resource | DELETE | data__Identifier, region |
update_resource | UPDATE | data__Identifier, data__PatchDocument, region |
list_resources | SELECT | region |
get_resource | SELECT | data__Identifier, region |
SELECT examples
Gets all properties from an individual scaling_policy.
SELECT
region,
policy_type,
resource_id,
scaling_target_id,
policy_name,
service_namespace,
scalable_dimension,
target_tracking_scaling_policy_configuration,
arn,
step_scaling_policy_configuration,
predictive_scaling_policy_configuration
FROM awscc.applicationautoscaling.scaling_policies
WHERE region = 'us-east-1' AND data__Identifier = '<Arn>|<ScalableDimension>';
INSERT example
Use the following StackQL query and manifest file to create a new scaling_policy resource, using stack-deploy.
- Required Properties
- All Properties
- Manifest
/*+ create */
INSERT INTO awscc.applicationautoscaling.scaling_policies (
PolicyType,
PolicyName,
region
)
SELECT
'{{ PolicyType }}',
'{{ PolicyName }}',
'{{ region }}';
/*+ create */
INSERT INTO awscc.applicationautoscaling.scaling_policies (
PolicyType,
ResourceId,
ScalingTargetId,
PolicyName,
ServiceNamespace,
ScalableDimension,
TargetTrackingScalingPolicyConfiguration,
StepScalingPolicyConfiguration,
PredictiveScalingPolicyConfiguration,
region
)
SELECT
'{{ PolicyType }}',
'{{ ResourceId }}',
'{{ ScalingTargetId }}',
'{{ PolicyName }}',
'{{ ServiceNamespace }}',
'{{ ScalableDimension }}',
'{{ TargetTrackingScalingPolicyConfiguration }}',
'{{ StepScalingPolicyConfiguration }}',
'{{ PredictiveScalingPolicyConfiguration }}',
'{{ region }}';
version: 1
name: stack name
description: stack description
providers:
- aws
globals:
- name: region
value: '{{ vars.AWS_REGION }}'
resources:
- name: scaling_policy
props:
- name: PolicyType
value: '{{ PolicyType }}'
- name: ResourceId
value: '{{ ResourceId }}'
- name: ScalingTargetId
value: '{{ ScalingTargetId }}'
- name: PolicyName
value: '{{ PolicyName }}'
- name: ServiceNamespace
value: '{{ ServiceNamespace }}'
- name: ScalableDimension
value: '{{ ScalableDimension }}'
- name: TargetTrackingScalingPolicyConfiguration
value:
ScaleOutCooldown: '{{ ScaleOutCooldown }}'
TargetValue: null
CustomizedMetricSpecification:
MetricName: '{{ MetricName }}'
Metrics:
- ReturnData: '{{ ReturnData }}'
Expression: '{{ Expression }}'
Label: '{{ Label }}'
MetricStat:
Stat: '{{ Stat }}'
Metric:
MetricName: '{{ MetricName }}'
Dimensions:
- Value: '{{ Value }}'
Name: '{{ Name }}'
Namespace: '{{ Namespace }}'
Unit: '{{ Unit }}'
Id: '{{ Id }}'
Statistic: '{{ Statistic }}'
Dimensions:
- Value: '{{ Value }}'
Name: '{{ Name }}'
Unit: '{{ Unit }}'
Namespace: '{{ Namespace }}'
DisableScaleIn: '{{ DisableScaleIn }}'
ScaleInCooldown: '{{ ScaleInCooldown }}'
PredefinedMetricSpecification:
PredefinedMetricType: '{{ PredefinedMetricType }}'
ResourceLabel: '{{ ResourceLabel }}'
- name: StepScalingPolicyConfiguration
value:
MetricAggregationType: '{{ MetricAggregationType }}'
Cooldown: '{{ Cooldown }}'
StepAdjustments:
- MetricIntervalUpperBound: null
MetricIntervalLowerBound: null
ScalingAdjustment: '{{ ScalingAdjustment }}'
MinAdjustmentMagnitude: '{{ MinAdjustmentMagnitude }}'
AdjustmentType: '{{ AdjustmentType }}'
- name: PredictiveScalingPolicyConfiguration
value:
MaxCapacityBreachBehavior: '{{ MaxCapacityBreachBehavior }}'
MaxCapacityBuffer: '{{ MaxCapacityBuffer }}'
Mode: '{{ Mode }}'
MetricSpecifications:
- CustomizedLoadMetricSpecification:
MetricDataQueries:
- ReturnData: '{{ ReturnData }}'
Expression: '{{ Expression }}'
Label: '{{ Label }}'
MetricStat:
Stat: '{{ Stat }}'
Metric:
MetricName: '{{ MetricName }}'
Dimensions:
- Value: '{{ Value }}'
Name: '{{ Name }}'
Namespace: '{{ Namespace }}'
Unit: '{{ Unit }}'
Id: '{{ Id }}'
PredefinedLoadMetricSpecification:
PredefinedMetricType: '{{ PredefinedMetricType }}'
ResourceLabel: '{{ ResourceLabel }}'
TargetValue: null
PredefinedScalingMetricSpecification:
PredefinedMetricType: '{{ PredefinedMetricType }}'
ResourceLabel: '{{ ResourceLabel }}'
CustomizedCapacityMetricSpecification:
MetricDataQueries:
- null
CustomizedScalingMetricSpecification:
MetricDataQueries:
- null
PredefinedMetricPairSpecification:
PredefinedMetricType: '{{ PredefinedMetricType }}'
ResourceLabel: '{{ ResourceLabel }}'
SchedulingBufferTime: '{{ SchedulingBufferTime }}'
DELETE example
/*+ delete */
DELETE FROM awscc.applicationautoscaling.scaling_policies
WHERE data__Identifier = '<Arn|ScalableDimension>'
AND region = 'us-east-1';
Permissions
To operate on the scaling_policies resource, the following permissions are required:
Read
application-autoscaling:DescribeScalingPolicies
Create
application-autoscaling:DescribeScalingPolicies,
application-autoscaling:PutScalingPolicy,
cloudwatch:GetMetricData
Update
application-autoscaling:DescribeScalingPolicies,
application-autoscaling:PutScalingPolicy,
cloudwatch:GetMetricData
List
application-autoscaling:DescribeScalingPolicies
Delete
application-autoscaling:DescribeScalingPolicies,
application-autoscaling:DeleteScalingPolicy