Application Auto Scaling

2017/11/08 - Application Auto Scaling - 3 new api methods

PutScheduledAction (new) Link ¶

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

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

To update an action, specify its name and the parameters that you want to change. If you don't specify start and end times, the old values are deleted. Any other parameters that you don't specify are not changed by this update request.

You can view the scheduled actions using DescribeScheduledActions. If you are no longer using a scheduled action, you can delete it using DeleteScheduledAction.

See also: AWS API Documentation

Request Syntax

client.put_scheduled_action(
    ServiceNamespace='ecs'|'elasticmapreduce'|'ec2'|'appstream'|'dynamodb',
    Schedule='string',
    ScheduledActionName='string',
    ResourceId='string',
    ScalableDimension='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',
    StartTime=datetime(2015, 1, 1),
    EndTime=datetime(2015, 1, 1),
    ScalableTargetAction={
        'MinCapacity': 123,
        'MaxCapacity': 123
    }
)
type ServiceNamespace

string

param ServiceNamespace

[REQUIRED]

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

type Schedule

string

param Schedule

The schedule for this action. The following formats are supported:

  • At expressions - at(yyyy-mm-ddThh:mm:ss)

  • Rate expressions - rate(valueunit)

  • Cron expressions - cron(fields)

At expressions are useful for one-time schedules. Specify the time, in UTC.

For rate expressions, value is a positive integer and unit is minute | minutes | hour | hours | day | days .

For more information about cron expressions, see Cron.

type ScheduledActionName

string

param ScheduledActionName

[REQUIRED]

The name of the scheduled action.

type ResourceId

string

param ResourceId

[REQUIRED]

The identifier of the resource associated with the scheduled action. 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 .

type ScalableDimension

string

param ScalableDimension

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.

type StartTime

datetime

param StartTime

The date and time for the scheduled action to start.

type EndTime

datetime

param EndTime

The date and time for the scheduled action to end.

type ScalableTargetAction

dict

param ScalableTargetAction

The new minimum and maximum capacity. You can set both values or just one. During the scheduled time, if the current capacity is below the minimum capacity, Application Auto Scaling scales out to the minimum capacity. If the current capacity is above the maximum capacity, Application Auto Scaling scales in to the maximum capacity.

  • MinCapacity (integer) --

    The minimum capacity.

  • MaxCapacity (integer) --

    The maximum capacity.

rtype

dict

returns

Response Syntax

{}

Response Structure

  • (dict) --

DeleteScheduledAction (new) Link ¶

Deletes the specified Application Auto Scaling scheduled action.

See also: AWS API Documentation

Request Syntax

client.delete_scheduled_action(
    ServiceNamespace='ecs'|'elasticmapreduce'|'ec2'|'appstream'|'dynamodb',
    ScheduledActionName='string',
    ResourceId='string',
    ScalableDimension='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'
)
type ServiceNamespace

string

param ServiceNamespace

[REQUIRED]

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

type ScheduledActionName

string

param ScheduledActionName

[REQUIRED]

The name of the scheduled action.

type ResourceId

string

param ResourceId

[REQUIRED]

The identifier of the resource associated with the scheduled action. 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 .

type ScalableDimension

string

param ScalableDimension

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.

rtype

dict

returns

Response Syntax

{}

Response Structure

  • (dict) --

DescribeScheduledActions (new) Link ¶

Describes the scheduled actions for the specified service namespace.

You can filter the results using the ResourceId , ScalableDimension , and ScheduledActionNames parameters.

To create a scheduled action or update an existing one, see PutScheduledAction. If you are no longer using a scheduled action, you can delete it using DeleteScheduledAction.

See also: AWS API Documentation

Request Syntax

client.describe_scheduled_actions(
    ScheduledActionNames=[
        'string',
    ],
    ServiceNamespace='ecs'|'elasticmapreduce'|'ec2'|'appstream'|'dynamodb',
    ResourceId='string',
    ScalableDimension='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',
    MaxResults=123,
    NextToken='string'
)
type ScheduledActionNames

list

param ScheduledActionNames

The names of the scheduled actions to describe.

  • (string) --

type ServiceNamespace

string

param ServiceNamespace

[REQUIRED]

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

type ResourceId

string

param ResourceId

The identifier of the resource associated with the scheduled action. This string consists of the resource type and unique identifier. If you specify a scalable dimension, you must also specify a resource ID.

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

type ScalableDimension

string

param ScalableDimension

The scalable dimension. This string consists of the service namespace, resource type, and scaling property. If you specify a scalable dimension, you must also specify a resource ID.

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

type MaxResults

integer

param MaxResults

The maximum number of scalable target results. This value can be between 1 and 50. The default value is 50.

If this parameter is used, the operation returns up to MaxResults results at a time, along with a NextToken value. To get the next set of results, include the NextToken value in a subsequent call. If this parameter is not used, the operation returns up to 50 results and a NextToken value, if applicable.

type NextToken

string

param NextToken

The token for the next set of results.

rtype

dict

returns

Response Syntax

{
    'ScheduledActions': [
        {
            'ScheduledActionName': 'string',
            'ScheduledActionARN': 'string',
            'ServiceNamespace': 'ecs'|'elasticmapreduce'|'ec2'|'appstream'|'dynamodb',
            'Schedule': 'string',
            'ResourceId': 'string',
            'ScalableDimension': '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',
            'StartTime': datetime(2015, 1, 1),
            'EndTime': datetime(2015, 1, 1),
            'ScalableTargetAction': {
                'MinCapacity': 123,
                'MaxCapacity': 123
            },
            'CreationTime': datetime(2015, 1, 1)
        },
    ],
    'NextToken': 'string'
}

Response Structure

  • (dict) --

    • ScheduledActions (list) --

      Information about the scheduled actions.

      • (dict) --

        Represents a scheduled action.

        • ScheduledActionName (string) --

          The name of the scheduled action.

        • ScheduledActionARN (string) --

          The Amazon Resource Name (ARN) of the scheduled action.

        • ServiceNamespace (string) --

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

        • Schedule (string) --

          The schedule for this action. The following formats are supported:

          • At expressions - at(yyyy-mm-ddThh:mm:ss)

          • Rate expressions - rate(valueunit)

          • Cron expressions - cron(fields)

          At expressions are useful for one-time schedules. Specify the time, in UTC.

          For rate expressions, value is a positive integer and unit is minute | minutes | hour | hours | day | days .

          For more information about cron expressions, see Cron.

        • ResourceId (string) --

          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 .

        • ScalableDimension (string) --

          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.

        • StartTime (datetime) --

          The date and time that the action is scheduled to begin.

        • EndTime (datetime) --

          The date and time that the action is scheduled to end.

        • ScalableTargetAction (dict) --

          The new minimum and maximum capacity. You can set both values or just one. During the scheduled time, if the current capacity is below the minimum capacity, Application Auto Scaling scales out to the minimum capacity. If the current capacity is above the maximum capacity, Application Auto Scaling scales in to the maximum capacity.

          • MinCapacity (integer) --

            The minimum capacity.

          • MaxCapacity (integer) --

            The maximum capacity.

        • CreationTime (datetime) --

          The date and time that the scheduled action was created.

    • NextToken (string) --

      The token required to get the next set of results. This value is null if there are no more results to return.