community.aws.application_autoscaling_policy module – Manage Application Auto Scaling Scaling Policies

Note

This module is part of the community.aws collection (version 9.0.0-dev0).

It is not included in ansible-core. To check whether it is installed, run ansible-galaxy collection list.

To install it, use: ansible-galaxy collection install community.aws. You need further requirements to be able to use this module, see Requirements for details.

To use it in a playbook, specify: community.aws.application_autoscaling_policy.

New in community.aws 1.0.0

Synopsis

  • Creates, updates or removes a Scaling Policy.

  • Prior to release 5.0.0 this module was called community.aws.aws_application_scaling_policy. The usage did not change.

Aliases: aws_application_scaling_policy

Requirements

The below requirements are needed on the host that executes this module.

  • python >= 3.6

  • boto3 >= 1.26.0

  • botocore >= 1.29.0

Parameters

Parameter

Comments

access_key

aliases: aws_access_key_id, aws_access_key, ec2_access_key

string

AWS access key ID.

See the AWS documentation for more information about access tokens https://docs.aws.amazon.com/general/latest/gr/aws-sec-cred-types.html#access-keys-and-secret-access-keys.

The AWS_ACCESS_KEY_ID, AWS_ACCESS_KEY or EC2_ACCESS_KEY environment variables may also be used in decreasing order of preference.

The aws_access_key and profile options are mutually exclusive.

The aws_access_key_id alias was added in release 5.1.0 for consistency with the AWS botocore SDK.

The ec2_access_key alias has been deprecated and will be removed in a release after 2024-12-01.

Support for the EC2_ACCESS_KEY environment variable has been deprecated and will be removed in a release after 2024-12-01.

aws_ca_bundle

path

The location of a CA Bundle to use when validating SSL certificates.

The AWS_CA_BUNDLE environment variable may also be used.

aws_config

dictionary

A dictionary to modify the botocore configuration.

Parameters can be found in the AWS documentation https://botocore.amazonaws.com/v1/documentation/api/latest/reference/config.html#botocore.config.Config.

debug_botocore_endpoint_logs

boolean

Use a botocore.endpoint logger to parse the unique (rather than total) "resource:action" API calls made during a task, outputing the set to the resource_actions key in the task results. Use the aws_resource_action callback to output to total list made during a playbook.

The ANSIBLE_DEBUG_BOTOCORE_LOGS environment variable may also be used.

Choices:

  • false ← (default)

  • true

endpoint_url

aliases: ec2_url, aws_endpoint_url, s3_url

string

URL to connect to instead of the default AWS endpoints. While this can be used to connection to other AWS-compatible services the amazon.aws and community.aws collections are only tested against AWS.

The AWS_URL or EC2_URL environment variables may also be used, in decreasing order of preference.

The ec2_url and s3_url aliases have been deprecated and will be removed in a release after 2024-12-01.

Support for the EC2_URL environment variable has been deprecated and will be removed in a release after 2024-12-01.

maximum_tasks

integer

The maximum value to scale to in response to a scale out event. This parameter is required if you are creating a first new policy for the specified service.

minimum_tasks

integer

The minimum value to scale to in response to a scale in event. This parameter is required if you are creating a first new policy for the specified service.

override_task_capacity

boolean

Whether or not to override values of minimum and/or maximum tasks if it’s already set.

Defaults to false.

Choices:

  • false

  • true

policy_name

string / required

The name of the scaling policy.

policy_type

string / required

The policy type.

Choices:

  • "StepScaling"

  • "TargetTrackingScaling"

profile

aliases: aws_profile

string

A named AWS profile to use for authentication.

See the AWS documentation for more information about named profiles https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-profiles.html.

The AWS_PROFILE environment variable may also be used.

The profile option is mutually exclusive with the aws_access_key, aws_secret_key and security_token options.

region

aliases: aws_region, ec2_region

string

The AWS region to use.

For global services such as IAM, Route53 and CloudFront, region is ignored.

The AWS_REGION or EC2_REGION environment variables may also be used.

See the Amazon AWS documentation for more information http://docs.aws.amazon.com/general/latest/gr/rande.html#ec2_region.

The ec2_region alias has been deprecated and will be removed in a release after 2024-12-01

Support for the EC2_REGION environment variable has been deprecated and will be removed in a release after 2024-12-01.

resource_id

string / required

The identifier of the resource associated with the scalable target.

scalable_dimension

string / required

The scalable dimension associated with the scalable target.

Choices:

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

secret_key

aliases: aws_secret_access_key, aws_secret_key, ec2_secret_key

string

AWS secret access key.

See the AWS documentation for more information about access tokens https://docs.aws.amazon.com/general/latest/gr/aws-sec-cred-types.html#access-keys-and-secret-access-keys.

The AWS_SECRET_ACCESS_KEY, AWS_SECRET_KEY, or EC2_SECRET_KEY environment variables may also be used in decreasing order of preference.

The secret_key and profile options are mutually exclusive.

The aws_secret_access_key alias was added in release 5.1.0 for consistency with the AWS botocore SDK.

The ec2_secret_key alias has been deprecated and will be removed in a release after 2024-12-01.

Support for the EC2_SECRET_KEY environment variable has been deprecated and will be removed in a release after 2024-12-01.

service_namespace

string / required

The namespace of the AWS service.

Choices:

  • "ecs"

  • "elasticmapreduce"

  • "ec2"

  • "appstream"

  • "dynamodb"

session_token

aliases: aws_session_token, security_token, aws_security_token, access_token

string

AWS STS session token for use with temporary credentials.

See the AWS documentation for more information about access tokens https://docs.aws.amazon.com/general/latest/gr/aws-sec-cred-types.html#access-keys-and-secret-access-keys.

The AWS_SESSION_TOKEN, AWS_SECURITY_TOKEN or EC2_SECURITY_TOKEN environment variables may also be used in decreasing order of preference.

The security_token and profile options are mutually exclusive.

Aliases aws_session_token and session_token were added in release 3.2.0, with the parameter being renamed from security_token to session_token in release 6.0.0.

The security_token, aws_security_token, and access_token aliases have been deprecated and will be removed in a release after 2024-12-01.

Support for the EC2_SECRET_KEY and AWS_SECURITY_TOKEN environment variables has been deprecated and will be removed in a release after 2024-12-01.

state

string / required

Whether a policy should be present or absent.

Choices:

  • "absent"

  • "present"

step_scaling_policy_configuration

dictionary

A step scaling policy. This parameter is required if you are creating a policy and policy_type=StepScaling.

target_tracking_scaling_policy_configuration

dictionary

A target tracking policy. This parameter is required if you are creating a new policy and policy_type=TargetTrackingScaling.

Full documentation of the suboptions can be found in the API documentation:

https://docs.aws.amazon.com/autoscaling/application/APIReference/API_TargetTrackingScalingPolicyConfiguration.html

CustomizedMetricSpecification

dictionary

The metric to use if using a customized metric.

DisableScaleIn

boolean

Whether scaling-in should be disabled.

Choices:

  • false

  • true

PredefinedMetricSpecification

dictionary

The metric to use if using a predefined metric.

ScaleInCooldown

integer

The time (in seconds) to wait after scaling-in before another scaling action can occur.

ScaleOutCooldown

integer

The time (in seconds) to wait after scaling-out before another scaling action can occur.

TargetValue

float

The target value for the metric.

validate_certs

boolean

When set to false, SSL certificates will not be validated for communication with the AWS APIs.

Setting validate_certs=false is strongly discouraged, as an alternative, consider setting aws_ca_bundle instead.

Choices:

  • false

  • true ← (default)

Notes

Note

Examples

# Note: These examples do not set authentication details, see the AWS Guide for details.

# Create step scaling policy for ECS Service
- name: scaling_policy
  community.aws.application_autoscaling_policy:
    state: present
    policy_name: test_policy
    service_namespace: ecs
    resource_id: service/poc-pricing/test-as
    scalable_dimension: ecs:service:DesiredCount
    policy_type: StepScaling
    minimum_tasks: 1
    maximum_tasks: 6
    step_scaling_policy_configuration:
      AdjustmentType: ChangeInCapacity
      StepAdjustments:
        - MetricIntervalUpperBound: 123
          ScalingAdjustment: 2
        - MetricIntervalLowerBound: 123
          ScalingAdjustment: -2
      Cooldown: 123
      MetricAggregationType: Average

# Create target tracking scaling policy for ECS Service
- name: scaling_policy
  community.aws.application_autoscaling_policy:
    state: present
    policy_name: test_policy
    service_namespace: ecs
    resource_id: service/poc-pricing/test-as
    scalable_dimension: ecs:service:DesiredCount
    policy_type: TargetTrackingScaling
    minimum_tasks: 1
    maximum_tasks: 6
    target_tracking_scaling_policy_configuration:
      TargetValue: 60
      PredefinedMetricSpecification:
        PredefinedMetricType: ECSServiceAverageCPUUtilization
      ScaleOutCooldown: 60
      ScaleInCooldown: 60

# Remove scalable target for ECS Service
- name: scaling_policy
  community.aws.application_autoscaling_policy:
    state: absent
    policy_name: test_policy
    policy_type: StepScaling
    service_namespace: ecs
    resource_id: service/cluster-name/service-name
    scalable_dimension: ecs:service:DesiredCount

Return Values

Common return values are documented here, the following are the fields unique to this module:

Key

Description

alarms

complex

List of the CloudWatch alarms associated with the scaling policy

Returned: when state present

alarm_arn

string

The Amazon Resource Name (ARN) of the alarm

Returned: when state present

alarm_name

string

The name of the alarm

Returned: when state present

creation_time

string

The Unix timestamp for when the scalable target was created.

Returned: when state present

Sample: "2017-09-28T08:22:51.881000-03:00"

max_capacity

integer

The maximum value to scale to in response to a scale out event. Required if state is present.

Returned: when state present

Sample: 2

min_capacity

integer

The minimum value to scale to in response to a scale in event. Required if state is present.

Returned: when state present

Sample: 1

policy_arn

string

The Amazon Resource Name (ARN) of the scaling policy..

Returned: when state present

policy_name

string

The name of the scaling policy.

Returned: when state present

policy_type

string

The policy type.

Returned: when state present

resource_id

string

The identifier of the resource associated with the scalable target.

Returned: when state present

Sample: "service/cluster-name/service-name"

role_arn

string

The ARN of an IAM role that allows Application Auto Scaling to modify the scalable target on your behalf. Required if state is present.

Returned: when state present

Sample: "arn:aws:iam::123456789012:role/roleName"

scalable_dimension

string

The scalable dimension associated with the scalable target.

Returned: when state present

Sample: "ecs:service:DesiredCount"

service_namespace

string

The namespace of the AWS service.

Returned: when state present

Sample: "ecs"

step_scaling_policy_configuration

complex

The step scaling policy.

Returned: when state present and the policy type is StepScaling

adjustment_type

string

The adjustment type

Returned: when state present and the policy type is StepScaling

Sample: "ChangeInCapacity, PercentChangeInCapacity, ExactCapacity"

cooldown

integer

The amount of time, in seconds, after a scaling activity completes where previous trigger-related scaling activities can influence future scaling events

Returned: when state present and the policy type is StepScaling

Sample: 60

metric_aggregation_type

string

The aggregation type for the CloudWatch metrics

Returned: when state present and the policy type is StepScaling

Sample: "Average, Minimum, Maximum"

step_adjustments

list / elements=dictionary

A set of adjustments that enable you to scale based on the size of the alarm breach

Returned: when state present and the policy type is StepScaling

target_tracking_scaling_policy_configuration

complex

The target tracking policy.

Returned: when state present and the policy type is TargetTrackingScaling

predefined_metric_specification

complex

A predefined metric

Returned: when state present and the policy type is TargetTrackingScaling

predefined_metric_type

string

The metric type

Returned: when state present and the policy type is TargetTrackingScaling

Sample: "ECSServiceAverageCPUUtilization, ECSServiceAverageMemoryUtilization"

resource_label

string

Identifies the resource associated with the metric type

Returned: when metric type is ALBRequestCountPerTarget

scale_in_cooldown

integer

The amount of time, in seconds, after a scale in activity completes before another scale in activity can start

Returned: when state present and the policy type is TargetTrackingScaling

Sample: 60

scale_out_cooldown

integer

The amount of time, in seconds, after a scale out activity completes before another scale out activity can start

Returned: when state present and the policy type is TargetTrackingScaling

Sample: 60

target_value

integer

The target value for the metric

Returned: when state present and the policy type is TargetTrackingScaling

Sample: 70

Authors

  • Gustavo Maia (@gurumaia)

  • Chen Leibovich (@chenl87)