community.aws.aws_application_scaling_policy – Manage Application Auto Scaling Scaling Policies
Note
This plugin is part of the community.aws collection (version 1.5.0).
You might already have this collection installed if you are using the ansible
package.
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
.
To use it in a playbook, specify: community.aws.aws_application_scaling_policy
.
New in version 1.0.0: of community.aws
Requirements
The below requirements are needed on the host that executes this module.
boto
boto3
botocore
json
python >= 2.6
Parameters
Parameter |
Comments |
---|---|
AWS access key. If not set then the value of the AWS_ACCESS_KEY_ID, AWS_ACCESS_KEY or EC2_ACCESS_KEY environment variable is used. If profile is set this parameter is ignored. Passing the aws_access_key and profile options at the same time has been deprecated and the options will be made mutually exclusive after 2022-06-01. |
|
The location of a CA Bundle to use when validating SSL certificates. Only used for boto3 based modules. Note: The CA Bundle is read ‘module’ side and may need to be explicitly copied from the controller if not run locally. |
|
A dictionary to modify the botocore configuration. Parameters can be found at https://botocore.amazonaws.com/v1/documentation/api/latest/reference/config.html#botocore.config.Config. Only the ‘user_agent’ key is used for boto modules. See http://boto.cloudhackers.com/en/latest/boto_config_tut.html#boto for more boto configuration. |
|
AWS secret key. If not set then the value of the AWS_SECRET_ACCESS_KEY, AWS_SECRET_KEY, or EC2_SECRET_KEY environment variable is used. If profile is set this parameter is ignored. Passing the aws_secret_key and profile options at the same time has been deprecated and the options will be made mutually exclusive after 2022-06-01. |
|
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:
|
|
Url to use to connect to EC2 or your Eucalyptus cloud (by default the module will use EC2 endpoints). Ignored for modules where region is required. Must be specified for all other modules if region is not used. If not set then the value of the EC2_URL environment variable, if any, is used. |
|
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. |
|
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. |
|
Whether or not to override values of minimum and/or maximum tasks if it’s already set. Defaults to Choices:
|
|
The name of the scaling policy. |
|
The policy type. Choices:
|
|
Uses a boto profile. Only works with boto >= 2.24.0. Using profile will override aws_access_key, aws_secret_key and security_token and support for passing them at the same time as profile has been deprecated. aws_access_key, aws_secret_key and security_token will be made mutually exclusive with profile after 2022-06-01. |
|
The AWS region to use. If not specified then the value of the AWS_REGION or EC2_REGION environment variable, if any, is used. See http://docs.aws.amazon.com/general/latest/gr/rande.html#ec2_region |
|
The identifier of the resource associated with the scalable target. |
|
The scalable dimension associated with the scalable target. Choices:
|
|
AWS STS security token. If not set then the value of the AWS_SECURITY_TOKEN or EC2_SECURITY_TOKEN environment variable is used. If profile is set this parameter is ignored. Passing the security_token and profile options at the same time has been deprecated and the options will be made mutually exclusive after 2022-06-01. |
|
The namespace of the AWS service. Choices:
|
|
Whether a policy should be Choices:
|
|
A step scaling policy. This parameter is required if you are creating a policy and policy_type=StepScaling. |
|
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: |
|
The metric to use if using a customized metric. |
|
Whether scaling-in should be disabled. Choices:
|
|
The metric to use if using a predefined metric. |
|
The time (in seconds) to wait after scaling-in before another scaling action can occur. |
|
The time (in seconds) to wait after scaling-out before another scaling action can occur. |
|
The target value for the metric. |
|
When set to “no”, SSL certificates will not be validated for boto versions >= 2.6.0. Choices:
|
Notes
Note
for details of the parameters and returns see http://boto3.readthedocs.io/en/latest/reference/services/application-autoscaling.html#ApplicationAutoScaling.Client.put_scaling_policy
If parameters are not set within the module, the following environment variables can be used in decreasing order of precedence
AWS_URL
orEC2_URL
,AWS_PROFILE
orAWS_DEFAULT_PROFILE
,AWS_ACCESS_KEY_ID
orAWS_ACCESS_KEY
orEC2_ACCESS_KEY
,AWS_SECRET_ACCESS_KEY
orAWS_SECRET_KEY
orEC2_SECRET_KEY
,AWS_SECURITY_TOKEN
orEC2_SECURITY_TOKEN
,AWS_REGION
orEC2_REGION
,AWS_CA_BUNDLE
Ansible uses the boto configuration file (typically ~/.boto) if no credentials are provided. See https://boto.readthedocs.io/en/latest/boto_config_tut.html
AWS_REGION
orEC2_REGION
can be typically be used to specify the AWS region, when required, but this can also be configured in the boto config file
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.aws_application_scaling_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.aws_application_scaling_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.aws_application_scaling_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 |
---|---|
List of the CloudWatch alarms associated with the scaling policy Returned: when state present |
|
The Amazon Resource Name (ARN) of the alarm Returned: when state present |
|
The name of the alarm Returned: when state present |
|
The Unix timestamp for when the scalable target was created. Returned: when state present Sample: “2017-09-28T08:22:51.881000-03:00” |
|
The maximum value to scale to in response to a scale out event. Required if state is Returned: when state present Sample: 2 |
|
The minimum value to scale to in response to a scale in event. Required if state is Returned: when state present Sample: 1 |
|
The Amazon Resource Name (ARN) of the scaling policy.. Returned: when state present |
|
The name of the scaling policy. Returned: when state present |
|
The policy type. Returned: when state present |
|
The identifier of the resource associated with the scalable target. Returned: when state present Sample: “service/cluster-name/service-name” |
|
The ARN of an IAM role that allows Application Auto Scaling to modify the scalable target on your behalf. Required if state is Returned: when state present Sample: “arn:aws:iam::123456789123:role/roleName” |
|
The scalable dimension associated with the scalable target. Returned: when state present Sample: “ecs:service:DesiredCount” |
|
The namespace of the AWS service. Returned: when state present Sample: “ecs” |
|
The step scaling policy. Returned: when state present and the policy type is StepScaling |
|
The adjustment type Returned: when state present and the policy type is StepScaling Sample: “ChangeInCapacity, PercentChangeInCapacity, ExactCapacity” |
|
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 |
|
The aggregation type for the CloudWatch metrics Returned: when state present and the policy type is StepScaling Sample: “Average, Minimum, Maximum” |
|
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 |
|
The target tracking policy. Returned: when state present and the policy type is TargetTrackingScaling |
|
A predefined metric Returned: when state present and the policy type is TargetTrackingScaling |
|
The metric type Returned: when state present and the policy type is TargetTrackingScaling Sample: “ECSServiceAverageCPUUtilization, ECSServiceAverageMemoryUtilization” |
|
Identifies the resource associated with the metric type Returned: when metric type is ALBRequestCountPerTarget |
|
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 |
|
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 |
|
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)