AWS SDK Version 3 for .NET
API Reference

AWS services or capabilities described in AWS Documentation may vary by region/location. Click Getting Started with Amazon AWS to see specific differences applicable to the China (Beijing) Region.

Creates or updates a policy for an Application Auto Scaling scalable target.

Each scalable target is identified by a service namespace, resource ID, and scalable dimension. A scaling policy applies to the scalable target identified by those three attributes. You cannot create a scaling policy without first registering a scalable target using RegisterScalableTarget.

To update a policy, specify its policy name and the parameters that you want to change. Any parameters that you don't specify are not changed by this update request.

You can view the scaling policies for a service namespace using DescribeScalingPolicies. If you are no longer using a scaling policy, you can delete it using DeleteScalingPolicy.

Note:

For PCL this operation is only available in asynchronous form. Please refer to PutScalingPolicyAsync.

Namespace: Amazon.ApplicationAutoScaling
Assembly: AWSSDK.ApplicationAutoScaling.dll
Version: 3.x.y.z

Syntax

C#
public virtual PutScalingPolicyResponse PutScalingPolicy(
         PutScalingPolicyRequest request
)
Parameters
request
Type: Amazon.ApplicationAutoScaling.Model.PutScalingPolicyRequest

Container for the necessary parameters to execute the PutScalingPolicy service method.

Return Value
The response from the PutScalingPolicy service method, as returned by ApplicationAutoScaling.

Exceptions

ExceptionCondition
ConcurrentUpdateException Concurrent updates caused an exception, for example, if you request an update to an Application Auto Scaling resource that already has a pending update.
FailedResourceAccessException Failed access to resources caused an exception. This exception is thrown when Application Auto Scaling is unable to retrieve the alarms associated with a scaling policy due to a client error, for example, if the role ARN specified for a scalable target does not have permission to call the CloudWatch DescribeAlarms API operation on behalf of your account.
InternalServiceException The service encountered an internal error.
LimitExceededException Your account exceeded a limit. This exception is thrown when a per-account resource limit is exceeded. For more information, see Application Auto Scaling Limits.
ObjectNotFoundException The specified object could not be found. For any Put or Register API operation, which depends on the existence of a scalable target, this exception is thrown if the scalable target with the specified service namespace, resource ID, and scalable dimension does not exist. For any Delete or Deregister API operation, this exception is thrown if the resource that is to be deleted or deregistered cannot be found.
ValidationException An exception was thrown for a validation issue. Review the available parameters for the API request.

Examples

This example applies a scaling policy to an Amazon ECS service called web-app in the default cluster. The policy increases the desired count of the service by 200%, with a cool down period of 60 seconds.

To apply a scaling policy to an Amazon ECS service


var response = client.PutScalingPolicy(new PutScalingPolicyRequest 
{
    PolicyName = "web-app-cpu-gt-75",
    PolicyType = "StepScaling",
    ResourceId = "service/default/web-app",
    ScalableDimension = "ecs:service:DesiredCount",
    ServiceNamespace = "ecs",
    StepScalingPolicyConfiguration = new StepScalingPolicyConfiguration {
        AdjustmentType = "PercentChangeInCapacity",
        Cooldown = 60,
        StepAdjustments = new List {
            new StepAdjustment {
                MetricIntervalLowerBound = 0,
                ScalingAdjustment = 200
            }
        }
    }
});

string policyARN = response.PolicyARN;

            

This example applies a scaling policy to an Amazon EC2 Spot fleet. The policy increases the target capacity of the spot fleet by 200%, with a cool down period of 180 seconds.",

To apply a scaling policy to an Amazon EC2 Spot fleet


var response = client.PutScalingPolicy(new PutScalingPolicyRequest 
{
    PolicyName = "fleet-cpu-gt-75",
    PolicyType = "StepScaling",
    ResourceId = "spot-fleet-request/sfr-45e69d8a-be48-4539-bbf3-3464e99c50c3",
    ScalableDimension = "ec2:spot-fleet-request:TargetCapacity",
    ServiceNamespace = "ec2",
    StepScalingPolicyConfiguration = new StepScalingPolicyConfiguration {
        AdjustmentType = "PercentChangeInCapacity",
        Cooldown = 180,
        StepAdjustments = new List {
            new StepAdjustment {
                MetricIntervalLowerBound = 0,
                ScalingAdjustment = 200
            }
        }
    }
});

string policyARN = response.PolicyARN;

            

Version Information

.NET Framework:
Supported in: 4.5, 4.0, 3.5

Portable Class Library:
Supported in: Windows Store Apps
Supported in: Windows Phone 8.1
Supported in: Xamarin Android
Supported in: Xamarin iOS (Unified)
Supported in: Xamarin.Forms

See Also