You are viewing documentation for version 2 of the AWS SDK for Ruby. Version 3 documentation can be found here.

Class: Aws::ApplicationAutoScaling::Types::PutScalingPolicyRequest

Inherits:
Struct
  • Object
show all
Defined in:
(unknown)

Overview

Note:

When passing PutScalingPolicyRequest as input to an Aws::Client method, you can use a vanilla Hash:

{
  policy_name: "PolicyName", # required
  service_namespace: "ecs", # required, accepts ecs, elasticmapreduce, ec2, appstream, dynamodb
  resource_id: "ResourceIdMaxLen1600", # required
  scalable_dimension: "ecs:service:DesiredCount", # required, accepts ecs:service:DesiredCount, ec2:spot-fleet-request:TargetCapacity, elasticmapreduce:instancegroup:InstanceCount, appstream:fleet:DesiredCapacity, dynamodb:table:ReadCapacityUnits, dynamodb:table:WriteCapacityUnits, dynamodb:index:ReadCapacityUnits, dynamodb:index:WriteCapacityUnits
  policy_type: "StepScaling", # accepts StepScaling, TargetTrackingScaling
  step_scaling_policy_configuration: {
    adjustment_type: "ChangeInCapacity", # accepts ChangeInCapacity, PercentChangeInCapacity, ExactCapacity
    step_adjustments: [
      {
        metric_interval_lower_bound: 1.0,
        metric_interval_upper_bound: 1.0,
        scaling_adjustment: 1, # required
      },
    ],
    min_adjustment_magnitude: 1,
    cooldown: 1,
    metric_aggregation_type: "Average", # accepts Average, Minimum, Maximum
  },
  target_tracking_scaling_policy_configuration: {
    target_value: 1.0, # required
    predefined_metric_specification: {
      predefined_metric_type: "DynamoDBReadCapacityUtilization", # required, accepts DynamoDBReadCapacityUtilization, DynamoDBWriteCapacityUtilization
      resource_label: "ResourceLabel",
    },
    customized_metric_specification: {
      metric_name: "MetricName", # required
      namespace: "MetricNamespace", # required
      dimensions: [
        {
          name: "MetricDimensionName", # required
          value: "MetricDimensionValue", # required
        },
      ],
      statistic: "Average", # required, accepts Average, Minimum, Maximum, SampleCount, Sum
      unit: "MetricUnit",
    },
    scale_out_cooldown: 1,
    scale_in_cooldown: 1,
    disable_scale_in: false,
  },
}

Instance Attribute Summary collapse

Instance Attribute Details

#policy_nameString

The name of the scaling policy.

Returns:

  • (String)

    The name of the scaling policy.

#policy_typeString

The policy type. If you are creating a new policy, this parameter is required. If you are updating a policy, this parameter is not required.

For DynamoDB, only TargetTrackingScaling is supported. For any other service, only StepScaling is supported.

Possible values:

  • StepScaling
  • TargetTrackingScaling

Returns:

  • (String)

    The policy type.

#resource_idString

The identifier of the resource associated with the scaling policy. This string consists of the resource type and unique identifier.

  • ECS service - The resource type is service and the unique identifier is the cluster name and service name. Example: service/default/sample-webapp.

  • Spot fleet request - 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.

  • 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.

  • AppStream 2.0 fleet - The resource type is fleet and the unique identifier is the fleet name. Example: fleet/sample-fleet.

  • DynamoDB table - The resource type is table and the unique identifier is the resource ID. Example: table/my-table.

  • DynamoDB global secondary index - The resource type is index and the unique identifier is the resource ID. Example: table/my-table/index/my-table-index.

Returns:

  • (String)

    The identifier of the resource associated with the scaling policy.

#scalable_dimensionString

The scalable dimension. This string consists of the service namespace, resource type, and scaling property.

  • ecs:service:DesiredCount - The desired task count of an ECS service.

  • ec2:spot-fleet-request:TargetCapacity - The target capacity of a Spot fleet request.

  • elasticmapreduce:instancegroup:InstanceCount - The instance count of an EMR Instance Group.

  • appstream:fleet:DesiredCapacity - The desired capacity of an AppStream 2.0 fleet.

  • dynamodb:table:ReadCapacityUnits - The provisioned read capacity for a DynamoDB table.

  • dynamodb:table:WriteCapacityUnits - The provisioned write capacity for a DynamoDB table.

  • dynamodb:index:ReadCapacityUnits - The provisioned read capacity for a DynamoDB global secondary index.

  • dynamodb:index:WriteCapacityUnits - The provisioned write capacity for a DynamoDB global secondary index.

    Possible values:

    • ecs:service:DesiredCount
    • ec2:spot-fleet-request:TargetCapacity
    • elasticmapreduce:instancegroup:InstanceCount
    • appstream:fleet:DesiredCapacity
    • dynamodb:table:ReadCapacityUnits
    • dynamodb:table:WriteCapacityUnits
    • dynamodb:index:ReadCapacityUnits
    • dynamodb:index:WriteCapacityUnits

Returns:

  • (String)

    The scalable dimension.

#service_namespaceString

The namespace of the AWS service. For more information, see AWS Service Namespaces in the Amazon Web Services General Reference.

Returns:

  • (String)

    The namespace of the AWS service.

#step_scaling_policy_configurationTypes::StepScalingPolicyConfiguration

A step scaling policy.

This parameter is required if you are creating a policy and the policy type is StepScaling.

Returns:

#target_tracking_scaling_policy_configurationTypes::TargetTrackingScalingPolicyConfiguration

A target tracking policy.

This parameter is required if you are creating a new policy and the policy type is TargetTrackingScaling.

Returns: