You are viewing documentation for version 2 of the AWS SDK for Ruby. Version 3 documentation can be found here.
Class: Aws::AutoScaling::Client
- Inherits:
-
Seahorse::Client::Base
- Object
- Seahorse::Client::Base
- Aws::AutoScaling::Client
- Defined in:
- (unknown)
Overview
An API client for Auto Scaling. To construct a client, you need to configure a :region
and :credentials
.
autoscaling = Aws::AutoScaling::Client.new(
region: region_name,
credentials: credentials,
# ...
)
See #initialize for a full list of supported configuration options.
Region
You can configure a default region in the following locations:
ENV['AWS_REGION']
Aws.config[:region]
Go here for a list of supported regions.
Credentials
Default credentials are loaded automatically from the following locations:
ENV['AWS_ACCESS_KEY_ID']
andENV['AWS_SECRET_ACCESS_KEY']
Aws.config[:credentials]
- The shared credentials ini file at
~/.aws/credentials
(more information) - From an instance profile when running on EC2
You can also construct a credentials object from one of the following classes:
Alternatively, you configure credentials with :access_key_id
and
:secret_access_key
:
# load credentials from disk
creds = YAML.load(File.read('/path/to/secrets'))
Aws::AutoScaling::Client.new(
access_key_id: creds['access_key_id'],
secret_access_key: creds['secret_access_key']
)
Always load your credentials from outside your application. Avoid configuring credentials statically and never commit them to source control.
Instance Attribute Summary
Attributes inherited from Seahorse::Client::Base
Constructor collapse
-
#initialize(options = {}) ⇒ Aws::AutoScaling::Client
constructor
Constructs an API client.
API Operations collapse
-
#attach_instances(options = {}) ⇒ Struct
Attaches one or more EC2 instances to the specified Auto Scaling group.
When you attach instances, Amazon EC2 Auto Scaling increases the desired capacity of the group by the number of instances being attached.
-
#attach_load_balancer_target_groups(options = {}) ⇒ Struct
Attaches one or more target groups to the specified Auto Scaling group.
To describe the target groups for an Auto Scaling group, call the DescribeLoadBalancerTargetGroups API.
-
#attach_load_balancers(options = {}) ⇒ Struct
To attach an Application Load Balancer or a Network Load Balancer, use the AttachLoadBalancerTargetGroups API operation instead.
Attaches one or more Classic Load Balancers to the specified Auto Scaling group.
-
#batch_delete_scheduled_action(options = {}) ⇒ Types::BatchDeleteScheduledActionAnswer
Deletes one or more scheduled actions for the specified Auto Scaling group.
.
-
#batch_put_scheduled_update_group_action(options = {}) ⇒ Types::BatchPutScheduledUpdateGroupActionAnswer
Creates or updates one or more scheduled scaling actions for an Auto Scaling group.
-
#cancel_instance_refresh(options = {}) ⇒ Types::CancelInstanceRefreshAnswer
Cancels an instance refresh operation in progress.
-
#complete_lifecycle_action(options = {}) ⇒ Struct
Completes the lifecycle action for the specified token or instance with the specified result.
This step is a part of the procedure for adding a lifecycle hook to an Auto Scaling group:
-
(Optional) Create a Lambda function and a rule that allows CloudWatch Events to invoke your Lambda function when Amazon EC2 Auto Scaling launches or terminates instances.
-
(Optional) Create a notification target and an IAM role.
-
-
#create_auto_scaling_group(options = {}) ⇒ Struct
Creates an Auto Scaling group with the specified name and attributes.
-
#create_launch_configuration(options = {}) ⇒ Struct
Creates a launch configuration.
If you exceed your maximum limit of launch configurations, the call fails.
-
#create_or_update_tags(options = {}) ⇒ Struct
Creates or updates tags for the specified Auto Scaling group.
When you specify a tag with a key that already exists, the operation overwrites the previous tag definition, and you do not get an error message.
For more information, see Tagging Auto Scaling groups and instances in the Amazon EC2 Auto Scaling User Guide.
. -
#delete_auto_scaling_group(options = {}) ⇒ Struct
Deletes the specified Auto Scaling group.
If the group has instances or scaling activities in progress, you must specify the option to force the deletion in order for it to succeed.
If the group has policies, deleting the group deletes the policies, the underlying alarm actions, and any alarm that no longer has an associated action.
To remove instances from the Auto Scaling group before deleting it, call the DetachInstances API with the list of instances and the option to decrement the desired capacity.
-
#delete_launch_configuration(options = {}) ⇒ Struct
Deletes the specified launch configuration.
The launch configuration must not be attached to an Auto Scaling group.
-
#delete_lifecycle_hook(options = {}) ⇒ Struct
Deletes the specified lifecycle hook.
If there are any outstanding lifecycle actions, they are completed first (
.ABANDON
for launching instances,CONTINUE
for terminating instances). -
#delete_notification_configuration(options = {}) ⇒ Struct
Deletes the specified notification.
.
-
#delete_policy(options = {}) ⇒ Struct
Deletes the specified scaling policy.
Deleting either a step scaling policy or a simple scaling policy deletes the underlying alarm action, but does not delete the alarm, even if it no longer has an associated action.
For more information, see Deleting a scaling policy in the Amazon EC2 Auto Scaling User Guide.
. -
#delete_scheduled_action(options = {}) ⇒ Struct
Deletes the specified scheduled action.
.
-
#delete_tags(options = {}) ⇒ Struct
Deletes the specified tags.
.
-
#describe_account_limits(options = {}) ⇒ Types::DescribeAccountLimitsAnswer
Describes the current Amazon EC2 Auto Scaling resource quotas for your AWS account.
For information about requesting an increase, see Amazon EC2 Auto Scaling service quotas in the Amazon EC2 Auto Scaling User Guide.
. -
#describe_adjustment_types(options = {}) ⇒ Types::DescribeAdjustmentTypesAnswer
Describes the available adjustment types for Amazon EC2 Auto Scaling scaling policies.
-
#describe_auto_scaling_groups(options = {}) ⇒ Types::AutoScalingGroupsType
Describes one or more Auto Scaling groups.
.
-
#describe_auto_scaling_instances(options = {}) ⇒ Types::AutoScalingInstancesType
Describes one or more Auto Scaling instances.
.
-
#describe_auto_scaling_notification_types(options = {}) ⇒ Types::DescribeAutoScalingNotificationTypesAnswer
Describes the notification types that are supported by Amazon EC2 Auto Scaling.
.
-
#describe_instance_refreshes(options = {}) ⇒ Types::DescribeInstanceRefreshesAnswer
Describes one or more instance refreshes.
You can determine the status of a request by looking at the
Status
parameter. -
#describe_launch_configurations(options = {}) ⇒ Types::LaunchConfigurationsType
Describes one or more launch configurations.
.
-
#describe_lifecycle_hook_types(options = {}) ⇒ Types::DescribeLifecycleHookTypesAnswer
Describes the available types of lifecycle hooks.
The following hook types are supported:
-
autoscaling:EC2_INSTANCE_LAUNCHING
-
autoscaling:EC2_INSTANCE_TERMINATING
-
-
#describe_lifecycle_hooks(options = {}) ⇒ Types::DescribeLifecycleHooksAnswer
Describes the lifecycle hooks for the specified Auto Scaling group.
.
-
#describe_load_balancer_target_groups(options = {}) ⇒ Types::DescribeLoadBalancerTargetGroupsResponse
Describes the target groups for the specified Auto Scaling group.
.
-
#describe_load_balancers(options = {}) ⇒ Types::DescribeLoadBalancersResponse
Describes the load balancers for the specified Auto Scaling group.
This operation describes only Classic Load Balancers.
-
#describe_metric_collection_types(options = {}) ⇒ Types::DescribeMetricCollectionTypesAnswer
Describes the available CloudWatch metrics for Amazon EC2 Auto Scaling.
The
GroupStandbyInstances
metric is not returned by default. -
#describe_notification_configurations(options = {}) ⇒ Types::DescribeNotificationConfigurationsAnswer
Describes the notification actions associated with the specified Auto Scaling group.
.
-
#describe_policies(options = {}) ⇒ Types::PoliciesType
Describes the policies for the specified Auto Scaling group.
.
-
#describe_scaling_activities(options = {}) ⇒ Types::ActivitiesType
Describes one or more scaling activities for the specified Auto Scaling group.
.
-
#describe_scaling_process_types(options = {}) ⇒ Types::ProcessesType
Describes the scaling process types for use with the ResumeProcesses and SuspendProcesses APIs.
.
-
#describe_scheduled_actions(options = {}) ⇒ Types::ScheduledActionsType
Describes the actions scheduled for your Auto Scaling group that haven't run or that have not reached their end time.
-
#describe_tags(options = {}) ⇒ Types::TagsType
Describes the specified tags.
You can use filters to limit the results.
-
#describe_termination_policy_types(options = {}) ⇒ Types::DescribeTerminationPolicyTypesAnswer
Describes the termination policies supported by Amazon EC2 Auto Scaling.
For more information, see Controlling which Auto Scaling instances terminate during scale in in the Amazon EC2 Auto Scaling User Guide.
. -
#detach_instances(options = {}) ⇒ Types::DetachInstancesAnswer
Removes one or more instances from the specified Auto Scaling group.
After the instances are detached, you can manage them independent of the Auto Scaling group.
If you do not specify the option to decrement the desired capacity, Amazon EC2 Auto Scaling launches instances to replace the ones that are detached.
If there is a Classic Load Balancer attached to the Auto Scaling group, the instances are deregistered from the load balancer.
-
#detach_load_balancer_target_groups(options = {}) ⇒ Struct
Detaches one or more target groups from the specified Auto Scaling group.
.
-
#detach_load_balancers(options = {}) ⇒ Struct
Detaches one or more Classic Load Balancers from the specified Auto Scaling group.
This operation detaches only Classic Load Balancers.
-
#disable_metrics_collection(options = {}) ⇒ Struct
Disables group metrics for the specified Auto Scaling group.
.
-
#enable_metrics_collection(options = {}) ⇒ Struct
Enables group metrics for the specified Auto Scaling group.
-
#enter_standby(options = {}) ⇒ Types::EnterStandbyAnswer
Moves the specified instances into the standby state.
If you choose to decrement the desired capacity of the Auto Scaling group, the instances can enter standby as long as the desired capacity of the Auto Scaling group after the instances are placed into standby is equal to or greater than the minimum capacity of the group.
If you choose not to decrement the desired capacity of the Auto Scaling group, the Auto Scaling group launches new instances to replace the instances on standby.
For more information, see Temporarily removing instances from your Auto Scaling group in the Amazon EC2 Auto Scaling User Guide.
. -
#execute_policy(options = {}) ⇒ Struct
Executes the specified policy.
-
#exit_standby(options = {}) ⇒ Types::ExitStandbyAnswer
Moves the specified instances out of the standby state.
After you put the instances back in service, the desired capacity is incremented.
For more information, see Temporarily removing instances from your Auto Scaling group in the Amazon EC2 Auto Scaling User Guide.
. -
#put_lifecycle_hook(options = {}) ⇒ Struct
Creates or updates a lifecycle hook for the specified Auto Scaling group.
A lifecycle hook tells Amazon EC2 Auto Scaling to perform an action on an instance when the instance launches (before it is put into service) or as the instance terminates (before it is fully terminated).
This step is a part of the procedure for adding a lifecycle hook to an Auto Scaling group:
-
(Optional) Create a Lambda function and a rule that allows CloudWatch Events to invoke your Lambda function when Amazon EC2 Auto Scaling launches or terminates instances.
-
(Optional) Create a notification target and an IAM role.
-
-
#put_notification_configuration(options = {}) ⇒ Struct
Configures an Auto Scaling group to send notifications when specified events take place.
-
#put_scaling_policy(options = {}) ⇒ Types::PolicyARNType
Creates or updates a scaling policy for an Auto Scaling group.
For more information about using scaling policies to scale your Auto Scaling group, see Target tracking scaling policies and Step and simple scaling policies in the Amazon EC2 Auto Scaling User Guide.
. -
#put_scheduled_update_group_action(options = {}) ⇒ Struct
Creates or updates a scheduled scaling action for an Auto Scaling group.
-
#record_lifecycle_action_heartbeat(options = {}) ⇒ Struct
Records a heartbeat for the lifecycle action associated with the specified token or instance.
-
#resume_processes(options = {}) ⇒ Struct
Resumes the specified suspended auto scaling processes, or all suspended process, for the specified Auto Scaling group.
For more information, see Suspending and resuming scaling processes in the Amazon EC2 Auto Scaling User Guide.
. -
#set_desired_capacity(options = {}) ⇒ Struct
Sets the size of the specified Auto Scaling group.
If a scale-in activity occurs as a result of a new
DesiredCapacity
value that is lower than the current size of the group, the Auto Scaling group uses its termination policy to determine which instances to terminate. -
#set_instance_health(options = {}) ⇒ Struct
Sets the health status of the specified instance.
For more information, see Health checks for Auto Scaling instances in the Amazon EC2 Auto Scaling User Guide.
. -
#set_instance_protection(options = {}) ⇒ Struct
Updates the instance protection settings of the specified instances.
For more information about preventing instances that are part of an Auto Scaling group from terminating on scale in, see Instance scale-in protection in the Amazon EC2 Auto Scaling User Guide.
If you exceed your maximum limit of instance IDs, which is 50 per Auto Scaling group, the call fails.
. -
#start_instance_refresh(options = {}) ⇒ Types::StartInstanceRefreshAnswer
Starts a new instance refresh operation, which triggers a rolling replacement of all previously launched instances in the Auto Scaling group with a new group of instances.
If successful, this call creates a new instance refresh request with a unique ID that you can use to track its progress.
-
#suspend_processes(options = {}) ⇒ Struct
Suspends the specified auto scaling processes, or all processes, for the specified Auto Scaling group.
If you suspend either the
Launch
orTerminate
process types, it can prevent other process types from functioning properly. -
#terminate_instance_in_auto_scaling_group(options = {}) ⇒ Types::ActivityType
Terminates the specified instance and optionally adjusts the desired group size.
-
#update_auto_scaling_group(options = {}) ⇒ Struct
Updates the configuration for the specified Auto Scaling group.
To update an Auto Scaling group, specify the name of the group and the parameter that you want to change.
Instance Method Summary collapse
-
#wait_until(waiter_name, params = {}) {|waiter| ... } ⇒ Boolean
Waiters polls an API operation until a resource enters a desired state.
-
#waiter_names ⇒ Array<Symbol>
Returns the list of supported waiters.
Methods inherited from Seahorse::Client::Base
add_plugin, api, #build_request, clear_plugins, define, new, #operation, #operation_names, plugins, remove_plugin, set_api, set_plugins
Methods included from Seahorse::Client::HandlerBuilder
#handle, #handle_request, #handle_response
Constructor Details
#initialize(options = {}) ⇒ Aws::AutoScaling::Client
Constructs an API client.
Instance Method Details
#attach_instances(options = {}) ⇒ Struct
Attaches one or more EC2 instances to the specified Auto Scaling group.
When you attach instances, Amazon EC2 Auto Scaling increases the desired capacity of the group by the number of instances being attached. If the number of instances being attached plus the desired capacity of the group exceeds the maximum size of the group, the operation fails.
If there is a Classic Load Balancer attached to your Auto Scaling group, the instances are also registered with the load balancer. If there are target groups attached to your Auto Scaling group, the instances are also registered with the target groups.
For more information, see Attach EC2 instances to your Auto Scaling group in the Amazon EC2 Auto Scaling User Guide.
#attach_load_balancer_target_groups(options = {}) ⇒ Struct
Attaches one or more target groups to the specified Auto Scaling group.
To describe the target groups for an Auto Scaling group, call the DescribeLoadBalancerTargetGroups API. To detach the target group from the Auto Scaling group, call the DetachLoadBalancerTargetGroups API.
With Application Load Balancers and Network Load Balancers, instances are registered as targets with a target group. With Classic Load Balancers, instances are registered with the load balancer. For more information, see Attaching a load balancer to your Auto Scaling group in the Amazon EC2 Auto Scaling User Guide.
#attach_load_balancers(options = {}) ⇒ Struct
To attach an Application Load Balancer or a Network Load Balancer, use the AttachLoadBalancerTargetGroups API operation instead.
Attaches one or more Classic Load Balancers to the specified Auto Scaling group. Amazon EC2 Auto Scaling registers the running instances with these Classic Load Balancers.
To describe the load balancers for an Auto Scaling group, call the DescribeLoadBalancers API. To detach the load balancer from the Auto Scaling group, call the DetachLoadBalancers API.
For more information, see Attaching a load balancer to your Auto Scaling group in the Amazon EC2 Auto Scaling User Guide.
#batch_delete_scheduled_action(options = {}) ⇒ Types::BatchDeleteScheduledActionAnswer
Deletes one or more scheduled actions for the specified Auto Scaling group.
#batch_put_scheduled_update_group_action(options = {}) ⇒ Types::BatchPutScheduledUpdateGroupActionAnswer
Creates or updates one or more scheduled scaling actions for an Auto Scaling group. If you leave a parameter unspecified when updating a scheduled scaling action, the corresponding value remains unchanged.
#cancel_instance_refresh(options = {}) ⇒ Types::CancelInstanceRefreshAnswer
Cancels an instance refresh operation in progress. Cancellation does not roll back any replacements that have already been completed, but it prevents new replacements from being started.
For more information, see Replacing Auto Scaling Instances Based on an Instance Refresh.
#complete_lifecycle_action(options = {}) ⇒ Struct
Completes the lifecycle action for the specified token or instance with the specified result.
This step is a part of the procedure for adding a lifecycle hook to an Auto Scaling group:
-
(Optional) Create a Lambda function and a rule that allows CloudWatch Events to invoke your Lambda function when Amazon EC2 Auto Scaling launches or terminates instances.
-
(Optional) Create a notification target and an IAM role. The target can be either an Amazon SQS queue or an Amazon SNS topic. The role allows Amazon EC2 Auto Scaling to publish lifecycle notifications to the target.
-
Create the lifecycle hook. Specify whether the hook is used when the instances launch or terminate.
-
If you need more time, record the lifecycle action heartbeat to keep the instance in a pending state.
-
If you finish before the timeout period ends, complete the lifecycle action.
For more information, see Amazon EC2 Auto Scaling lifecycle hooks in the Amazon EC2 Auto Scaling User Guide.
#create_auto_scaling_group(options = {}) ⇒ Struct
Creates an Auto Scaling group with the specified name and attributes.
If you exceed your maximum limit of Auto Scaling groups, the call fails. To query this limit, call the DescribeAccountLimits API. For information about updating this limit, see Amazon EC2 Auto Scaling service quotas in the Amazon EC2 Auto Scaling User Guide.
For introductory exercises for creating an Auto Scaling group, see Getting started with Amazon EC2 Auto Scaling and Tutorial: Set up a scaled and load-balanced application in the Amazon EC2 Auto Scaling User Guide. For more information, see Auto Scaling groups in the Amazon EC2 Auto Scaling User Guide.
Every Auto Scaling group has three size parameters (DesiredCapacity
, MaxSize
, and MinSize
). Usually, you set these sizes based on a specific number of instances. However, if you configure a mixed instances policy that defines weights for the instance types, you must specify these sizes with the same units that you use for weighting instances.
#create_launch_configuration(options = {}) ⇒ Struct
Creates a launch configuration.
If you exceed your maximum limit of launch configurations, the call fails. To query this limit, call the DescribeAccountLimits API. For information about updating this limit, see Amazon EC2 Auto Scaling service quotas in the Amazon EC2 Auto Scaling User Guide.
For more information, see Launch configurations in the Amazon EC2 Auto Scaling User Guide.
#create_or_update_tags(options = {}) ⇒ Struct
Creates or updates tags for the specified Auto Scaling group.
When you specify a tag with a key that already exists, the operation overwrites the previous tag definition, and you do not get an error message.
For more information, see Tagging Auto Scaling groups and instances in the Amazon EC2 Auto Scaling User Guide.
#delete_auto_scaling_group(options = {}) ⇒ Struct
Deletes the specified Auto Scaling group.
If the group has instances or scaling activities in progress, you must specify the option to force the deletion in order for it to succeed.
If the group has policies, deleting the group deletes the policies, the underlying alarm actions, and any alarm that no longer has an associated action.
To remove instances from the Auto Scaling group before deleting it, call the DetachInstances API with the list of instances and the option to decrement the desired capacity. This ensures that Amazon EC2 Auto Scaling does not launch replacement instances.
To terminate all instances before deleting the Auto Scaling group, call the UpdateAutoScalingGroup API and set the minimum size and desired capacity of the Auto Scaling group to zero.
#delete_launch_configuration(options = {}) ⇒ Struct
Deletes the specified launch configuration.
The launch configuration must not be attached to an Auto Scaling group. When this call completes, the launch configuration is no longer available for use.
#delete_lifecycle_hook(options = {}) ⇒ Struct
Deletes the specified lifecycle hook.
If there are any outstanding lifecycle actions, they are completed first (ABANDON
for launching instances, CONTINUE
for terminating instances).
#delete_notification_configuration(options = {}) ⇒ Struct
Deletes the specified notification.
#delete_policy(options = {}) ⇒ Struct
Deletes the specified scaling policy.
Deleting either a step scaling policy or a simple scaling policy deletes the underlying alarm action, but does not delete the alarm, even if it no longer has an associated action.
For more information, see Deleting a scaling policy in the Amazon EC2 Auto Scaling User Guide.
#delete_scheduled_action(options = {}) ⇒ Struct
Deletes the specified scheduled action.
#delete_tags(options = {}) ⇒ Struct
Deletes the specified tags.
#describe_account_limits(options = {}) ⇒ Types::DescribeAccountLimitsAnswer
Describes the current Amazon EC2 Auto Scaling resource quotas for your AWS account.
For information about requesting an increase, see Amazon EC2 Auto Scaling service quotas in the Amazon EC2 Auto Scaling User Guide.
#describe_adjustment_types(options = {}) ⇒ Types::DescribeAdjustmentTypesAnswer
Describes the available adjustment types for Amazon EC2 Auto Scaling scaling policies. These settings apply to step scaling policies and simple scaling policies; they do not apply to target tracking scaling policies.
The following adjustment types are supported:
-
ChangeInCapacity
-
ExactCapacity
-
PercentChangeInCapacity
#describe_auto_scaling_groups(options = {}) ⇒ Types::AutoScalingGroupsType
Describes one or more Auto Scaling groups.
#describe_auto_scaling_instances(options = {}) ⇒ Types::AutoScalingInstancesType
Describes one or more Auto Scaling instances.
#describe_auto_scaling_notification_types(options = {}) ⇒ Types::DescribeAutoScalingNotificationTypesAnswer
Describes the notification types that are supported by Amazon EC2 Auto Scaling.
#describe_instance_refreshes(options = {}) ⇒ Types::DescribeInstanceRefreshesAnswer
Describes one or more instance refreshes.
You can determine the status of a request by looking at the Status
parameter. The following are the possible statuses:
-
Pending
- The request was created, but the operation has not started. -
InProgress
- The operation is in progress. -
Successful
- The operation completed successfully. -
Failed
- The operation failed to complete. You can troubleshoot using the status reason and the scaling activities. -
Cancelling
- An ongoing operation is being cancelled. Cancellation does not roll back any replacements that have already been completed, but it prevents new replacements from being started. -
Cancelled
- The operation is cancelled.
For more information, see Replacing Auto Scaling Instances Based on an Instance Refresh.
#describe_launch_configurations(options = {}) ⇒ Types::LaunchConfigurationsType
Describes one or more launch configurations.
#describe_lifecycle_hook_types(options = {}) ⇒ Types::DescribeLifecycleHookTypesAnswer
Describes the available types of lifecycle hooks.
The following hook types are supported:
-
autoscaling:EC2_INSTANCE_LAUNCHING
-
autoscaling:EC2_INSTANCE_TERMINATING
#describe_lifecycle_hooks(options = {}) ⇒ Types::DescribeLifecycleHooksAnswer
Describes the lifecycle hooks for the specified Auto Scaling group.
#describe_load_balancer_target_groups(options = {}) ⇒ Types::DescribeLoadBalancerTargetGroupsResponse
Describes the target groups for the specified Auto Scaling group.
#describe_load_balancers(options = {}) ⇒ Types::DescribeLoadBalancersResponse
Describes the load balancers for the specified Auto Scaling group.
This operation describes only Classic Load Balancers. If you have Application Load Balancers or Network Load Balancers, use the DescribeLoadBalancerTargetGroups API instead.
#describe_metric_collection_types(options = {}) ⇒ Types::DescribeMetricCollectionTypesAnswer
Describes the available CloudWatch metrics for Amazon EC2 Auto Scaling.
The GroupStandbyInstances
metric is not returned by default. You must explicitly request this metric when calling the EnableMetricsCollection API.
#describe_notification_configurations(options = {}) ⇒ Types::DescribeNotificationConfigurationsAnswer
Describes the notification actions associated with the specified Auto Scaling group.
#describe_policies(options = {}) ⇒ Types::PoliciesType
Describes the policies for the specified Auto Scaling group.
#describe_scaling_activities(options = {}) ⇒ Types::ActivitiesType
Describes one or more scaling activities for the specified Auto Scaling group.
#describe_scaling_process_types(options = {}) ⇒ Types::ProcessesType
Describes the scaling process types for use with the ResumeProcesses and SuspendProcesses APIs.
#describe_scheduled_actions(options = {}) ⇒ Types::ScheduledActionsType
Describes the actions scheduled for your Auto Scaling group that haven't run or that have not reached their end time. To describe the actions that have already run, call the DescribeScalingActivities API.
#describe_tags(options = {}) ⇒ Types::TagsType
Describes the specified tags.
You can use filters to limit the results. For example, you can query for the tags for a specific Auto Scaling group. You can specify multiple values for a filter. A tag must match at least one of the specified values for it to be included in the results.
You can also specify multiple filters. The result includes information for a particular tag only if it matches all the filters. If there's no match, no special message is returned.
For more information, see Tagging Auto Scaling groups and instances in the Amazon EC2 Auto Scaling User Guide.
#describe_termination_policy_types(options = {}) ⇒ Types::DescribeTerminationPolicyTypesAnswer
Describes the termination policies supported by Amazon EC2 Auto Scaling.
For more information, see Controlling which Auto Scaling instances terminate during scale in in the Amazon EC2 Auto Scaling User Guide.
#detach_instances(options = {}) ⇒ Types::DetachInstancesAnswer
Removes one or more instances from the specified Auto Scaling group.
After the instances are detached, you can manage them independent of the Auto Scaling group.
If you do not specify the option to decrement the desired capacity, Amazon EC2 Auto Scaling launches instances to replace the ones that are detached.
If there is a Classic Load Balancer attached to the Auto Scaling group, the instances are deregistered from the load balancer. If there are target groups attached to the Auto Scaling group, the instances are deregistered from the target groups.
For more information, see Detach EC2 instances from your Auto Scaling group in the Amazon EC2 Auto Scaling User Guide.
#detach_load_balancer_target_groups(options = {}) ⇒ Struct
Detaches one or more target groups from the specified Auto Scaling group.
#detach_load_balancers(options = {}) ⇒ Struct
Detaches one or more Classic Load Balancers from the specified Auto Scaling group.
This operation detaches only Classic Load Balancers. If you have Application Load Balancers or Network Load Balancers, use the DetachLoadBalancerTargetGroups API instead.
When you detach a load balancer, it enters the Removing
state while deregistering the instances in the group. When all instances are deregistered, then you can no longer describe the load balancer using the DescribeLoadBalancers API call. The instances remain running.
#disable_metrics_collection(options = {}) ⇒ Struct
Disables group metrics for the specified Auto Scaling group.
#enable_metrics_collection(options = {}) ⇒ Struct
Enables group metrics for the specified Auto Scaling group. For more information, see Monitoring CloudWatch metrics for your Auto Scaling groups and instances in the Amazon EC2 Auto Scaling User Guide.
#enter_standby(options = {}) ⇒ Types::EnterStandbyAnswer
Moves the specified instances into the standby state.
If you choose to decrement the desired capacity of the Auto Scaling group, the instances can enter standby as long as the desired capacity of the Auto Scaling group after the instances are placed into standby is equal to or greater than the minimum capacity of the group.
If you choose not to decrement the desired capacity of the Auto Scaling group, the Auto Scaling group launches new instances to replace the instances on standby.
For more information, see Temporarily removing instances from your Auto Scaling group in the Amazon EC2 Auto Scaling User Guide.
#execute_policy(options = {}) ⇒ Struct
Executes the specified policy. This can be useful for testing the design of your scaling policy.
#exit_standby(options = {}) ⇒ Types::ExitStandbyAnswer
Moves the specified instances out of the standby state.
After you put the instances back in service, the desired capacity is incremented.
For more information, see Temporarily removing instances from your Auto Scaling group in the Amazon EC2 Auto Scaling User Guide.
#put_lifecycle_hook(options = {}) ⇒ Struct
Creates or updates a lifecycle hook for the specified Auto Scaling group.
A lifecycle hook tells Amazon EC2 Auto Scaling to perform an action on an instance when the instance launches (before it is put into service) or as the instance terminates (before it is fully terminated).
This step is a part of the procedure for adding a lifecycle hook to an Auto Scaling group:
-
(Optional) Create a Lambda function and a rule that allows CloudWatch Events to invoke your Lambda function when Amazon EC2 Auto Scaling launches or terminates instances.
-
(Optional) Create a notification target and an IAM role. The target can be either an Amazon SQS queue or an Amazon SNS topic. The role allows Amazon EC2 Auto Scaling to publish lifecycle notifications to the target.
-
Create the lifecycle hook. Specify whether the hook is used when the instances launch or terminate.
-
If you need more time, record the lifecycle action heartbeat to keep the instance in a pending state using the RecordLifecycleActionHeartbeat API call.
-
If you finish before the timeout period ends, complete the lifecycle action using the CompleteLifecycleAction API call.
For more information, see Amazon EC2 Auto Scaling lifecycle hooks in the Amazon EC2 Auto Scaling User Guide.
If you exceed your maximum limit of lifecycle hooks, which by default is 50 per Auto Scaling group, the call fails.
You can view the lifecycle hooks for an Auto Scaling group using the DescribeLifecycleHooks API call. If you are no longer using a lifecycle hook, you can delete it by calling the DeleteLifecycleHook API.
#put_notification_configuration(options = {}) ⇒ Struct
Configures an Auto Scaling group to send notifications when specified events take place. Subscribers to the specified topic can have messages delivered to an endpoint such as a web server or an email address.
This configuration overwrites any existing configuration.
For more information, see Getting Amazon SNS notifications when your Auto Scaling group scales in the Amazon EC2 Auto Scaling User Guide.
If you exceed your maximum limit of SNS topics, which is 10 per Auto Scaling group, the call fails.
#put_scaling_policy(options = {}) ⇒ Types::PolicyARNType
Creates or updates a scaling policy for an Auto Scaling group.
For more information about using scaling policies to scale your Auto Scaling group, see Target tracking scaling policies and Step and simple scaling policies in the Amazon EC2 Auto Scaling User Guide.
#put_scheduled_update_group_action(options = {}) ⇒ Struct
Creates or updates a scheduled scaling action for an Auto Scaling group. If you leave a parameter unspecified when updating a scheduled scaling action, the corresponding value remains unchanged.
For more information, see Scheduled scaling in the Amazon EC2 Auto Scaling User Guide.
#record_lifecycle_action_heartbeat(options = {}) ⇒ Struct
Records a heartbeat for the lifecycle action associated with the specified token or instance. This extends the timeout by the length of time defined using the PutLifecycleHook API call.
This step is a part of the procedure for adding a lifecycle hook to an Auto Scaling group:
-
(Optional) Create a Lambda function and a rule that allows CloudWatch Events to invoke your Lambda function when Amazon EC2 Auto Scaling launches or terminates instances.
-
(Optional) Create a notification target and an IAM role. The target can be either an Amazon SQS queue or an Amazon SNS topic. The role allows Amazon EC2 Auto Scaling to publish lifecycle notifications to the target.
-
Create the lifecycle hook. Specify whether the hook is used when the instances launch or terminate.
-
If you need more time, record the lifecycle action heartbeat to keep the instance in a pending state.
-
If you finish before the timeout period ends, complete the lifecycle action.
For more information, see Auto Scaling lifecycle in the Amazon EC2 Auto Scaling User Guide.
#resume_processes(options = {}) ⇒ Struct
Resumes the specified suspended auto scaling processes, or all suspended process, for the specified Auto Scaling group.
For more information, see Suspending and resuming scaling processes in the Amazon EC2 Auto Scaling User Guide.
#set_desired_capacity(options = {}) ⇒ Struct
Sets the size of the specified Auto Scaling group.
If a scale-in activity occurs as a result of a new DesiredCapacity
value that is lower than the current size of the group, the Auto Scaling group uses its termination policy to determine which instances to terminate.
For more information, see Manual scaling in the Amazon EC2 Auto Scaling User Guide.
#set_instance_health(options = {}) ⇒ Struct
Sets the health status of the specified instance.
For more information, see Health checks for Auto Scaling instances in the Amazon EC2 Auto Scaling User Guide.
#set_instance_protection(options = {}) ⇒ Struct
Updates the instance protection settings of the specified instances.
For more information about preventing instances that are part of an Auto Scaling group from terminating on scale in, see Instance scale-in protection in the Amazon EC2 Auto Scaling User Guide.
If you exceed your maximum limit of instance IDs, which is 50 per Auto Scaling group, the call fails.
#start_instance_refresh(options = {}) ⇒ Types::StartInstanceRefreshAnswer
Starts a new instance refresh operation, which triggers a rolling replacement of all previously launched instances in the Auto Scaling group with a new group of instances.
If successful, this call creates a new instance refresh request with a unique ID that you can use to track its progress. To query its status, call the DescribeInstanceRefreshes API. To describe the instance refreshes that have already run, call the DescribeInstanceRefreshes API. To cancel an instance refresh operation in progress, use the CancelInstanceRefresh API.
For more information, see Replacing Auto Scaling Instances Based on an Instance Refresh.
#suspend_processes(options = {}) ⇒ Struct
Suspends the specified auto scaling processes, or all processes, for the specified Auto Scaling group.
If you suspend either the Launch
or Terminate
process types, it can prevent other process types from functioning properly. For more information, see Suspending and resuming scaling processes in the Amazon EC2 Auto Scaling User Guide.
To resume processes that have been suspended, call the ResumeProcesses API.
#terminate_instance_in_auto_scaling_group(options = {}) ⇒ Types::ActivityType
Terminates the specified instance and optionally adjusts the desired group size.
This call simply makes a termination request. The instance is not terminated immediately. When an instance is terminated, the instance status changes to terminated
. You can't connect to or start an instance after you've terminated it.
If you do not specify the option to decrement the desired capacity, Amazon EC2 Auto Scaling launches instances to replace the ones that are terminated.
By default, Amazon EC2 Auto Scaling balances instances across all Availability Zones. If you decrement the desired capacity, your Auto Scaling group can become unbalanced between Availability Zones. Amazon EC2 Auto Scaling tries to rebalance the group, and rebalancing might terminate instances in other zones. For more information, see Rebalancing activities in the Amazon EC2 Auto Scaling User Guide.
#update_auto_scaling_group(options = {}) ⇒ Struct
Updates the configuration for the specified Auto Scaling group.
To update an Auto Scaling group, specify the name of the group and the parameter that you want to change. Any parameters that you don't specify are not changed by this update request. The new settings take effect on any scaling activities after this call returns.
If you associate a new launch configuration or template with an Auto Scaling group, all new instances will get the updated configuration. Existing instances continue to run with the configuration that they were originally launched with. When you update a group to specify a mixed instances policy instead of a launch configuration or template, existing instances may be replaced to match the new purchasing options that you specified in the policy. For example, if the group currently has 100% On-Demand capacity and the policy specifies 50% Spot capacity, this means that half of your instances will be gradually terminated and relaunched as Spot Instances. When replacing instances, Amazon EC2 Auto Scaling launches new instances before terminating the old ones, so that updating your group does not compromise the performance or availability of your application.
Note the following about changing DesiredCapacity
, MaxSize
, or MinSize
:
-
If a scale-in activity occurs as a result of a new
DesiredCapacity
value that is lower than the current size of the group, the Auto Scaling group uses its termination policy to determine which instances to terminate. -
If you specify a new value for
MinSize
without specifying a value forDesiredCapacity
, and the newMinSize
is larger than the current size of the group, this sets the group'sDesiredCapacity
to the newMinSize
value. -
If you specify a new value for
MaxSize
without specifying a value forDesiredCapacity
, and the newMaxSize
is smaller than the current size of the group, this sets the group'sDesiredCapacity
to the newMaxSize
value.
To see which parameters have been set, call the DescribeAutoScalingGroups API. To view the scaling policies for an Auto Scaling group, call the DescribePolicies API. If the group has scaling policies, you can update them by calling the PutScalingPolicy API.
#wait_until(waiter_name, params = {}) {|waiter| ... } ⇒ Boolean
Waiters polls an API operation until a resource enters a desired state.
Basic Usage
Waiters will poll until they are succesful, they fail by entering a terminal state, or until a maximum number of attempts are made.
# polls in a loop, sleeping between attempts client.waiter_until(waiter_name, params)
Configuration
You can configure the maximum number of polling attempts, and the delay (in seconds) between each polling attempt. You configure waiters by passing a block to #wait_until:
# poll for ~25 seconds
client.wait_until(...) do |w|
w.max_attempts = 5
w.delay = 5
end
Callbacks
You can be notified before each polling attempt and before each
delay. If you throw :success
or :failure
from these callbacks,
it will terminate the waiter.
started_at = Time.now
client.wait_until(...) do |w|
# disable max attempts
w.max_attempts = nil
# poll for 1 hour, instead of a number of attempts
w.before_wait do |attempts, response|
throw :failure if Time.now - started_at > 3600
end
end
Handling Errors
When a waiter is successful, it returns true
. When a waiter
fails, it raises an error. All errors raised extend from
Waiters::Errors::WaiterFailed.
begin
client.wait_until(...)
rescue Aws::Waiters::Errors::WaiterFailed
# resource did not enter the desired state in time
end
#waiter_names ⇒ Array<Symbol>
Returns the list of supported waiters. The following table lists the supported waiters and the client method they call:
Waiter Name | Client Method | Default Delay: | Default Max Attempts: |
---|---|---|---|
:group_exists | #describe_auto_scaling_groups | 5 | 10 |
:group_in_service | #describe_auto_scaling_groups | 15 | 40 |
:group_not_exists | #describe_auto_scaling_groups | 15 | 40 |