The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

Paws::AutoScaling - Perl Interface to AWS Auto Scaling

SYNOPSIS

  use Paws;

  my $obj = Paws->service('AutoScaling');
  my $res = $obj->Method(
    Arg1 => $val1,
    Arg2 => [ 'V1', 'V2' ],
    # if Arg3 is an object, the HashRef will be used as arguments to the constructor
    # of the arguments type
    Arg3 => { Att1 => 'Val1' },
    # if Arg4 is an array of objects, the HashRefs will be passed as arguments to
    # the constructor of the arguments type
    Arg4 => [ { Att1 => 'Val1'  }, { Att1 => 'Val2' } ],
  );

DESCRIPTION

Amazon EC2 Auto Scaling

Amazon EC2 Auto Scaling is designed to automatically launch or terminate EC2 instances based on user-defined scaling policies, scheduled actions, and health checks. Use this service with AWS Auto Scaling, Amazon CloudWatch, and Elastic Load Balancing.

For more information, including information about granting IAM users required permissions for Amazon EC2 Auto Scaling actions, see the Amazon EC2 Auto Scaling User Guide (https://docs.aws.amazon.com/autoscaling/ec2/userguide/what-is-amazon-ec2-auto-scaling.html).

For the AWS API documentation, see https://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01

METHODS

AttachInstances

AutoScalingGroupName => Str
[InstanceIds => ArrayRef[Str|Undef]]

Each argument is described in detail in: Paws::AutoScaling::AttachInstances

Returns: nothing

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 (https://docs.aws.amazon.com/autoscaling/ec2/userguide/attach-instance-asg.html) in the Amazon EC2 Auto Scaling User Guide.

AttachLoadBalancers

AutoScalingGroupName => Str
LoadBalancerNames => ArrayRef[Str|Undef]

Each argument is described in detail in: Paws::AutoScaling::AttachLoadBalancers

Returns: a Paws::AutoScaling::AttachLoadBalancersResultType instance

Attaches one or more Classic Load Balancers to the specified Auto Scaling group.

To attach an Application Load Balancer or a Network Load Balancer instead, see AttachLoadBalancerTargetGroups.

To describe the load balancers for an Auto Scaling group, use DescribeLoadBalancers. To detach the load balancer from the Auto Scaling group, use DetachLoadBalancers.

For more information, see Attaching a Load Balancer to Your Auto Scaling Group (https://docs.aws.amazon.com/autoscaling/ec2/userguide/attach-load-balancer-asg.html) in the Amazon EC2 Auto Scaling User Guide.

AttachLoadBalancerTargetGroups

AutoScalingGroupName => Str
TargetGroupARNs => ArrayRef[Str|Undef]

Each argument is described in detail in: Paws::AutoScaling::AttachLoadBalancerTargetGroups

Returns: a Paws::AutoScaling::AttachLoadBalancerTargetGroupsResultType instance

Attaches one or more target groups to the specified Auto Scaling group.

To describe the target groups for an Auto Scaling group, use DescribeLoadBalancerTargetGroups. To detach the target group from the Auto Scaling group, use DetachLoadBalancerTargetGroups.

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 (https://docs.aws.amazon.com/autoscaling/ec2/userguide/attach-load-balancer-asg.html) in the Amazon EC2 Auto Scaling User Guide.

BatchDeleteScheduledAction

AutoScalingGroupName => Str
ScheduledActionNames => ArrayRef[Str|Undef]

Each argument is described in detail in: Paws::AutoScaling::BatchDeleteScheduledAction

Returns: a Paws::AutoScaling::BatchDeleteScheduledActionAnswer instance

Deletes one or more scheduled actions for the specified Auto Scaling group.

BatchPutScheduledUpdateGroupAction

AutoScalingGroupName => Str
ScheduledUpdateGroupActions => ArrayRef[Paws::AutoScaling::ScheduledUpdateGroupActionRequest]

Each argument is described in detail in: Paws::AutoScaling::BatchPutScheduledUpdateGroupAction

Returns: a Paws::AutoScaling::BatchPutScheduledUpdateGroupActionAnswer instance

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.

CompleteLifecycleAction

AutoScalingGroupName => Str
LifecycleActionResult => Str
LifecycleHookName => Str
[InstanceId => Str]
[LifecycleActionToken => Str]

Each argument is described in detail in: Paws::AutoScaling::CompleteLifecycleAction

Returns: a Paws::AutoScaling::CompleteLifecycleActionAnswer instance

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:

  1. (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.

  2. (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.

  3. Create the lifecycle hook. Specify whether the hook is used when the instances launch or terminate.

  4. If you need more time, record the lifecycle action heartbeat to keep the instance in a pending state.

  5. If you finish before the timeout period ends, complete the lifecycle action.

For more information, see Amazon EC2 Auto Scaling Lifecycle Hooks (https://docs.aws.amazon.com/autoscaling/ec2/userguide/lifecycle-hooks.html) in the Amazon EC2 Auto Scaling User Guide.

CreateAutoScalingGroup

AutoScalingGroupName => Str
MaxSize => Int
MinSize => Int
[AvailabilityZones => ArrayRef[Str|Undef]]
[DefaultCooldown => Int]
[DesiredCapacity => Int]
[HealthCheckGracePeriod => Int]
[HealthCheckType => Str]
[InstanceId => Str]
[LaunchConfigurationName => Str]
[LaunchTemplate => Paws::AutoScaling::LaunchTemplateSpecification]
[LifecycleHookSpecificationList => ArrayRef[Paws::AutoScaling::LifecycleHookSpecification]]
[LoadBalancerNames => ArrayRef[Str|Undef]]
[MaxInstanceLifetime => Int]
[MixedInstancesPolicy => Paws::AutoScaling::MixedInstancesPolicy]
[NewInstancesProtectedFromScaleIn => Bool]
[PlacementGroup => Str]
[ServiceLinkedRoleARN => Str]
[Tags => ArrayRef[Paws::AutoScaling::Tag]]
[TargetGroupARNs => ArrayRef[Str|Undef]]
[TerminationPolicies => ArrayRef[Str|Undef]]
[VPCZoneIdentifier => Str]

Each argument is described in detail in: Paws::AutoScaling::CreateAutoScalingGroup

Returns: nothing

Creates an Auto Scaling group with the specified name and attributes.

If you exceed your maximum limit of Auto Scaling groups, the call fails. For information about viewing this limit, see DescribeAccountLimits. For information about updating this limit, see Amazon EC2 Auto Scaling Service Quotas (https://docs.aws.amazon.com/autoscaling/ec2/userguide/as-account-limits.html) in the Amazon EC2 Auto Scaling User Guide.

CreateLaunchConfiguration

LaunchConfigurationName => Str
[AssociatePublicIpAddress => Bool]
[BlockDeviceMappings => ArrayRef[Paws::AutoScaling::BlockDeviceMapping]]
[ClassicLinkVPCId => Str]
[ClassicLinkVPCSecurityGroups => ArrayRef[Str|Undef]]
[EbsOptimized => Bool]
[IamInstanceProfile => Str]
[ImageId => Str]
[InstanceId => Str]
[InstanceMonitoring => Paws::AutoScaling::InstanceMonitoring]
[InstanceType => Str]
[KernelId => Str]
[KeyName => Str]
[PlacementTenancy => Str]
[RamdiskId => Str]
[SecurityGroups => ArrayRef[Str|Undef]]
[SpotPrice => Str]
[UserData => Str]

Each argument is described in detail in: Paws::AutoScaling::CreateLaunchConfiguration

Returns: nothing

Creates a launch configuration.

If you exceed your maximum limit of launch configurations, the call fails. For information about viewing this limit, see DescribeAccountLimits. For information about updating this limit, see Amazon EC2 Auto Scaling Service Quotas (https://docs.aws.amazon.com/autoscaling/ec2/userguide/as-account-limits.html) in the Amazon EC2 Auto Scaling User Guide.

For more information, see Launch Configurations (https://docs.aws.amazon.com/autoscaling/ec2/userguide/LaunchConfiguration.html) in the Amazon EC2 Auto Scaling User Guide.

CreateOrUpdateTags

Tags => ArrayRef[Paws::AutoScaling::Tag]

Each argument is described in detail in: Paws::AutoScaling::CreateOrUpdateTags

Returns: nothing

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 (https://docs.aws.amazon.com/autoscaling/ec2/userguide/autoscaling-tagging.html) in the Amazon EC2 Auto Scaling User Guide.

DeleteAutoScalingGroup

AutoScalingGroupName => Str
[ForceDelete => Bool]

Each argument is described in detail in: Paws::AutoScaling::DeleteAutoScalingGroup

Returns: nothing

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 DetachInstances 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 UpdateAutoScalingGroup and set the minimum size and desired capacity of the Auto Scaling group to zero.

DeleteLaunchConfiguration

LaunchConfigurationName => Str

Each argument is described in detail in: Paws::AutoScaling::DeleteLaunchConfiguration

Returns: nothing

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.

DeleteLifecycleHook

AutoScalingGroupName => Str
LifecycleHookName => Str

Each argument is described in detail in: Paws::AutoScaling::DeleteLifecycleHook

Returns: a Paws::AutoScaling::DeleteLifecycleHookAnswer instance

Deletes the specified lifecycle hook.

If there are any outstanding lifecycle actions, they are completed first (ABANDON for launching instances, CONTINUE for terminating instances).

DeleteNotificationConfiguration

AutoScalingGroupName => Str
TopicARN => Str

Each argument is described in detail in: Paws::AutoScaling::DeleteNotificationConfiguration

Returns: nothing

Deletes the specified notification.

DeletePolicy

PolicyName => Str
[AutoScalingGroupName => Str]

Each argument is described in detail in: Paws::AutoScaling::DeletePolicy

Returns: nothing

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 (https://docs.aws.amazon.com/autoscaling/ec2/userguide/deleting-scaling-policy.html) in the Amazon EC2 Auto Scaling User Guide.

DeleteScheduledAction

AutoScalingGroupName => Str
ScheduledActionName => Str

Each argument is described in detail in: Paws::AutoScaling::DeleteScheduledAction

Returns: nothing

Deletes the specified scheduled action.

DeleteTags

Tags => ArrayRef[Paws::AutoScaling::Tag]

Each argument is described in detail in: Paws::AutoScaling::DeleteTags

Returns: nothing

Deletes the specified tags.

DescribeAccountLimits

=>

Each argument is described in detail in: Paws::AutoScaling::DescribeAccountLimits

Returns: a Paws::AutoScaling::DescribeAccountLimitsAnswer instance

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 (https://docs.aws.amazon.com/autoscaling/ec2/userguide/as-account-limits.html) in the Amazon EC2 Auto Scaling User Guide.

DescribeAdjustmentTypes

=>

Each argument is described in detail in: Paws::AutoScaling::DescribeAdjustmentTypes

Returns: a Paws::AutoScaling::DescribeAdjustmentTypesAnswer instance

Describes the policy adjustment types for use with PutScalingPolicy.

DescribeAutoScalingGroups

[AutoScalingGroupNames => ArrayRef[Str|Undef]]
[MaxRecords => Int]
[NextToken => Str]

Each argument is described in detail in: Paws::AutoScaling::DescribeAutoScalingGroups

Returns: a Paws::AutoScaling::AutoScalingGroupsType instance

Describes one or more Auto Scaling groups.

DescribeAutoScalingInstances

[InstanceIds => ArrayRef[Str|Undef]]
[MaxRecords => Int]
[NextToken => Str]

Each argument is described in detail in: Paws::AutoScaling::DescribeAutoScalingInstances

Returns: a Paws::AutoScaling::AutoScalingInstancesType instance

Describes one or more Auto Scaling instances.

DescribeAutoScalingNotificationTypes

=>

Each argument is described in detail in: Paws::AutoScaling::DescribeAutoScalingNotificationTypes

Returns: a Paws::AutoScaling::DescribeAutoScalingNotificationTypesAnswer instance

Describes the notification types that are supported by Amazon EC2 Auto Scaling.

DescribeLaunchConfigurations

[LaunchConfigurationNames => ArrayRef[Str|Undef]]
[MaxRecords => Int]
[NextToken => Str]

Each argument is described in detail in: Paws::AutoScaling::DescribeLaunchConfigurations

Returns: a Paws::AutoScaling::LaunchConfigurationsType instance

Describes one or more launch configurations.

DescribeLifecycleHooks

AutoScalingGroupName => Str
[LifecycleHookNames => ArrayRef[Str|Undef]]

Each argument is described in detail in: Paws::AutoScaling::DescribeLifecycleHooks

Returns: a Paws::AutoScaling::DescribeLifecycleHooksAnswer instance

Describes the lifecycle hooks for the specified Auto Scaling group.

DescribeLifecycleHookTypes

=>

Each argument is described in detail in: Paws::AutoScaling::DescribeLifecycleHookTypes

Returns: a Paws::AutoScaling::DescribeLifecycleHookTypesAnswer instance

Describes the available types of lifecycle hooks.

The following hook types are supported:

  • autoscaling:EC2_INSTANCE_LAUNCHING

  • autoscaling:EC2_INSTANCE_TERMINATING

DescribeLoadBalancers

AutoScalingGroupName => Str
[MaxRecords => Int]
[NextToken => Str]

Each argument is described in detail in: Paws::AutoScaling::DescribeLoadBalancers

Returns: a Paws::AutoScaling::DescribeLoadBalancersResponse instance

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 DescribeLoadBalancerTargetGroups instead.

DescribeLoadBalancerTargetGroups

AutoScalingGroupName => Str
[MaxRecords => Int]
[NextToken => Str]

Each argument is described in detail in: Paws::AutoScaling::DescribeLoadBalancerTargetGroups

Returns: a Paws::AutoScaling::DescribeLoadBalancerTargetGroupsResponse instance

Describes the target groups for the specified Auto Scaling group.

DescribeMetricCollectionTypes

=>

Each argument is described in detail in: Paws::AutoScaling::DescribeMetricCollectionTypes

Returns: a Paws::AutoScaling::DescribeMetricCollectionTypesAnswer instance

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

DescribeNotificationConfigurations

[AutoScalingGroupNames => ArrayRef[Str|Undef]]
[MaxRecords => Int]
[NextToken => Str]

Each argument is described in detail in: Paws::AutoScaling::DescribeNotificationConfigurations

Returns: a Paws::AutoScaling::DescribeNotificationConfigurationsAnswer instance

Describes the notification actions associated with the specified Auto Scaling group.

DescribePolicies

[AutoScalingGroupName => Str]
[MaxRecords => Int]
[NextToken => Str]
[PolicyNames => ArrayRef[Str|Undef]]
[PolicyTypes => ArrayRef[Str|Undef]]

Each argument is described in detail in: Paws::AutoScaling::DescribePolicies

Returns: a Paws::AutoScaling::PoliciesType instance

Describes the policies for the specified Auto Scaling group.

DescribeScalingActivities

[ActivityIds => ArrayRef[Str|Undef]]
[AutoScalingGroupName => Str]
[MaxRecords => Int]
[NextToken => Str]

Each argument is described in detail in: Paws::AutoScaling::DescribeScalingActivities

Returns: a Paws::AutoScaling::ActivitiesType instance

Describes one or more scaling activities for the specified Auto Scaling group.

DescribeScalingProcessTypes

=>

Each argument is described in detail in: Paws::AutoScaling::DescribeScalingProcessTypes

Returns: a Paws::AutoScaling::ProcessesType instance

Describes the scaling process types for use with ResumeProcesses and SuspendProcesses.

DescribeScheduledActions

[AutoScalingGroupName => Str]
[EndTime => Str]
[MaxRecords => Int]
[NextToken => Str]
[ScheduledActionNames => ArrayRef[Str|Undef]]
[StartTime => Str]

Each argument is described in detail in: Paws::AutoScaling::DescribeScheduledActions

Returns: a Paws::AutoScaling::ScheduledActionsType instance

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, use DescribeScalingActivities.

DescribeTags

[Filters => ArrayRef[Paws::AutoScaling::Filter]]
[MaxRecords => Int]
[NextToken => Str]

Each argument is described in detail in: Paws::AutoScaling::DescribeTags

Returns: a Paws::AutoScaling::TagsType instance

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.

DescribeTerminationPolicyTypes

=>

Each argument is described in detail in: Paws::AutoScaling::DescribeTerminationPolicyTypes

Returns: a Paws::AutoScaling::DescribeTerminationPolicyTypesAnswer instance

Describes the termination policies supported by Amazon EC2 Auto Scaling.

For more information, see Controlling Which Auto Scaling Instances Terminate During Scale In (https://docs.aws.amazon.com/autoscaling/ec2/userguide/as-instance-termination.html) in the Amazon EC2 Auto Scaling User Guide.

DetachInstances

AutoScalingGroupName => Str
ShouldDecrementDesiredCapacity => Bool
[InstanceIds => ArrayRef[Str|Undef]]

Each argument is described in detail in: Paws::AutoScaling::DetachInstances

Returns: a Paws::AutoScaling::DetachInstancesAnswer instance

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 (https://docs.aws.amazon.com/autoscaling/ec2/userguide/detach-instance-asg.html) in the Amazon EC2 Auto Scaling User Guide.

DetachLoadBalancers

AutoScalingGroupName => Str
LoadBalancerNames => ArrayRef[Str|Undef]

Each argument is described in detail in: Paws::AutoScaling::DetachLoadBalancers

Returns: a Paws::AutoScaling::DetachLoadBalancersResultType instance

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 DetachLoadBalancerTargetGroups 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 DescribeLoadBalancers. The instances remain running.

DetachLoadBalancerTargetGroups

AutoScalingGroupName => Str
TargetGroupARNs => ArrayRef[Str|Undef]

Each argument is described in detail in: Paws::AutoScaling::DetachLoadBalancerTargetGroups

Returns: a Paws::AutoScaling::DetachLoadBalancerTargetGroupsResultType instance

Detaches one or more target groups from the specified Auto Scaling group.

DisableMetricsCollection

AutoScalingGroupName => Str
[Metrics => ArrayRef[Str|Undef]]

Each argument is described in detail in: Paws::AutoScaling::DisableMetricsCollection

Returns: nothing

Disables group metrics for the specified Auto Scaling group.

EnableMetricsCollection

AutoScalingGroupName => Str
Granularity => Str
[Metrics => ArrayRef[Str|Undef]]

Each argument is described in detail in: Paws::AutoScaling::EnableMetricsCollection

Returns: nothing

Enables group metrics for the specified Auto Scaling group. For more information, see Monitoring Your Auto Scaling Groups and Instances (https://docs.aws.amazon.com/autoscaling/ec2/userguide/as-instance-monitoring.html) in the Amazon EC2 Auto Scaling User Guide.

EnterStandby

AutoScalingGroupName => Str
ShouldDecrementDesiredCapacity => Bool
[InstanceIds => ArrayRef[Str|Undef]]

Each argument is described in detail in: Paws::AutoScaling::EnterStandby

Returns: a Paws::AutoScaling::EnterStandbyAnswer instance

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 (https://docs.aws.amazon.com/autoscaling/ec2/userguide/as-enter-exit-standby.html) in the Amazon EC2 Auto Scaling User Guide.

ExecutePolicy

PolicyName => Str
[AutoScalingGroupName => Str]
[BreachThreshold => Num]
[HonorCooldown => Bool]
[MetricValue => Num]

Each argument is described in detail in: Paws::AutoScaling::ExecutePolicy

Returns: nothing

Executes the specified policy.

ExitStandby

AutoScalingGroupName => Str
[InstanceIds => ArrayRef[Str|Undef]]

Each argument is described in detail in: Paws::AutoScaling::ExitStandby

Returns: a Paws::AutoScaling::ExitStandbyAnswer instance

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 (https://docs.aws.amazon.com/autoscaling/ec2/userguide/as-enter-exit-standby.html) in the Amazon EC2 Auto Scaling User Guide.

PutLifecycleHook

AutoScalingGroupName => Str
LifecycleHookName => Str
[DefaultResult => Str]
[HeartbeatTimeout => Int]
[LifecycleTransition => Str]
[NotificationMetadata => Str]
[NotificationTargetARN => Str]
[RoleARN => Str]

Each argument is described in detail in: Paws::AutoScaling::PutLifecycleHook

Returns: a Paws::AutoScaling::PutLifecycleHookAnswer instance

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:

  1. (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.

  2. (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.

  3. Create the lifecycle hook. Specify whether the hook is used when the instances launch or terminate.

  4. If you need more time, record the lifecycle action heartbeat to keep the instance in a pending state using RecordLifecycleActionHeartbeat.

  5. If you finish before the timeout period ends, complete the lifecycle action using CompleteLifecycleAction.

For more information, see Amazon EC2 Auto Scaling Lifecycle Hooks (https://docs.aws.amazon.com/autoscaling/ec2/userguide/lifecycle-hooks.html) 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 DescribeLifecycleHooks. If you are no longer using a lifecycle hook, you can delete it using DeleteLifecycleHook.

PutNotificationConfiguration

AutoScalingGroupName => Str
NotificationTypes => ArrayRef[Str|Undef]
TopicARN => Str

Each argument is described in detail in: Paws::AutoScaling::PutNotificationConfiguration

Returns: nothing

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 (https://docs.aws.amazon.com/autoscaling/ec2/userguide/ASGettingNotifications.html) in the Amazon EC2 Auto Scaling User Guide.

PutScalingPolicy

AutoScalingGroupName => Str
PolicyName => Str
[AdjustmentType => Str]
[Cooldown => Int]
[Enabled => Bool]
[EstimatedInstanceWarmup => Int]
[MetricAggregationType => Str]
[MinAdjustmentMagnitude => Int]
[MinAdjustmentStep => Int]
[PolicyType => Str]
[ScalingAdjustment => Int]
[StepAdjustments => ArrayRef[Paws::AutoScaling::StepAdjustment]]
[TargetTrackingConfiguration => Paws::AutoScaling::TargetTrackingConfiguration]

Each argument is described in detail in: Paws::AutoScaling::PutScalingPolicy

Returns: a Paws::AutoScaling::PolicyARNType instance

Creates or updates a scaling policy for an Auto Scaling group.

For more information about using scaling policies to scale your Auto Scaling group automatically, see Dynamic Scaling (https://docs.aws.amazon.com/autoscaling/ec2/userguide/as-scale-based-on-demand.html) in the Amazon EC2 Auto Scaling User Guide.

PutScheduledUpdateGroupAction

AutoScalingGroupName => Str
ScheduledActionName => Str
[DesiredCapacity => Int]
[EndTime => Str]
[MaxSize => Int]
[MinSize => Int]
[Recurrence => Str]
[StartTime => Str]
[Time => Str]

Each argument is described in detail in: Paws::AutoScaling::PutScheduledUpdateGroupAction

Returns: nothing

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 (https://docs.aws.amazon.com/autoscaling/ec2/userguide/schedule_time.html) in the Amazon EC2 Auto Scaling User Guide.

RecordLifecycleActionHeartbeat

AutoScalingGroupName => Str
LifecycleHookName => Str
[InstanceId => Str]
[LifecycleActionToken => Str]

Each argument is described in detail in: Paws::AutoScaling::RecordLifecycleActionHeartbeat

Returns: a Paws::AutoScaling::RecordLifecycleActionHeartbeatAnswer instance

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

This step is a part of the procedure for adding a lifecycle hook to an Auto Scaling group:

  1. (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.

  2. (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.

  3. Create the lifecycle hook. Specify whether the hook is used when the instances launch or terminate.

  4. If you need more time, record the lifecycle action heartbeat to keep the instance in a pending state.

  5. If you finish before the timeout period ends, complete the lifecycle action.

For more information, see Auto Scaling Lifecycle (https://docs.aws.amazon.com/autoscaling/ec2/userguide/AutoScalingGroupLifecycle.html) in the Amazon EC2 Auto Scaling User Guide.

ResumeProcesses

AutoScalingGroupName => Str
[ScalingProcesses => ArrayRef[Str|Undef]]

Each argument is described in detail in: Paws::AutoScaling::ResumeProcesses

Returns: nothing

Resumes the specified suspended automatic scaling processes, or all suspended process, for the specified Auto Scaling group.

For more information, see Suspending and Resuming Scaling Processes (https://docs.aws.amazon.com/autoscaling/ec2/userguide/as-suspend-resume-processes.html) in the Amazon EC2 Auto Scaling User Guide.

SetDesiredCapacity

AutoScalingGroupName => Str
DesiredCapacity => Int
[HonorCooldown => Bool]

Each argument is described in detail in: Paws::AutoScaling::SetDesiredCapacity

Returns: nothing

Sets the size of the specified Auto Scaling group.

For more information about desired capacity, see What Is Amazon EC2 Auto Scaling? (https://docs.aws.amazon.com/autoscaling/ec2/userguide/what-is-amazon-ec2-auto-scaling.html) in the Amazon EC2 Auto Scaling User Guide.

SetInstanceHealth

HealthStatus => Str
InstanceId => Str
[ShouldRespectGracePeriod => Bool]

Each argument is described in detail in: Paws::AutoScaling::SetInstanceHealth

Returns: nothing

Sets the health status of the specified instance.

For more information, see Health Checks for Auto Scaling Instances (https://docs.aws.amazon.com/autoscaling/ec2/userguide/healthcheck.html) in the Amazon EC2 Auto Scaling User Guide.

SetInstanceProtection

AutoScalingGroupName => Str
InstanceIds => ArrayRef[Str|Undef]
ProtectedFromScaleIn => Bool

Each argument is described in detail in: Paws::AutoScaling::SetInstanceProtection

Returns: a Paws::AutoScaling::SetInstanceProtectionAnswer instance

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 Protection (https://docs.aws.amazon.com/autoscaling/ec2/userguide/as-instance-termination.html#instance-protection) in the Amazon EC2 Auto Scaling User Guide.

SuspendProcesses

AutoScalingGroupName => Str
[ScalingProcesses => ArrayRef[Str|Undef]]

Each argument is described in detail in: Paws::AutoScaling::SuspendProcesses

Returns: nothing

Suspends the specified automatic 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.

To resume processes that have been suspended, use ResumeProcesses.

For more information, see Suspending and Resuming Scaling Processes (https://docs.aws.amazon.com/autoscaling/ec2/userguide/as-suspend-resume-processes.html) in the Amazon EC2 Auto Scaling User Guide.

TerminateInstanceInAutoScalingGroup

InstanceId => Str
ShouldDecrementDesiredCapacity => Bool

Each argument is described in detail in: Paws::AutoScaling::TerminateInstanceInAutoScalingGroup

Returns: a Paws::AutoScaling::ActivityType instance

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 (https://docs.aws.amazon.com/autoscaling/ec2/userguide/auto-scaling-benefits.html#AutoScalingBehavior.InstanceUsage) in the Amazon EC2 Auto Scaling User Guide.

UpdateAutoScalingGroup

AutoScalingGroupName => Str
[AvailabilityZones => ArrayRef[Str|Undef]]
[DefaultCooldown => Int]
[DesiredCapacity => Int]
[HealthCheckGracePeriod => Int]
[HealthCheckType => Str]
[LaunchConfigurationName => Str]
[LaunchTemplate => Paws::AutoScaling::LaunchTemplateSpecification]
[MaxInstanceLifetime => Int]
[MaxSize => Int]
[MinSize => Int]
[MixedInstancesPolicy => Paws::AutoScaling::MixedInstancesPolicy]
[NewInstancesProtectedFromScaleIn => Bool]
[PlacementGroup => Str]
[ServiceLinkedRoleARN => Str]
[TerminationPolicies => ArrayRef[Str|Undef]]
[VPCZoneIdentifier => Str]

Each argument is described in detail in: Paws::AutoScaling::UpdateAutoScalingGroup

Returns: nothing

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 event 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 for DesiredCapacity, and the new MinSize is larger than the current size of the group, this sets the group's DesiredCapacity to the new MinSize value.

  • If you specify a new value for MaxSize without specifying a value for DesiredCapacity, and the new MaxSize is smaller than the current size of the group, this sets the group's DesiredCapacity to the new MaxSize value.

To see which parameters have been set, use DescribeAutoScalingGroups. You can also view the scaling policies for an Auto Scaling group using DescribePolicies. If the group has scaling policies, you can update them using PutScalingPolicy.

PAGINATORS

Paginator methods are helpers that repetively call methods that return partial results

DescribeAllAutoScalingGroups(sub { },[AutoScalingGroupNames => ArrayRef[Str|Undef], MaxRecords => Int, NextToken => Str])

DescribeAllAutoScalingGroups([AutoScalingGroupNames => ArrayRef[Str|Undef], MaxRecords => Int, NextToken => Str])

If passed a sub as first parameter, it will call the sub for each element found in :

 - AutoScalingGroups, passing the object as the first parameter, and the string 'AutoScalingGroups' as the second parameter 

If not, it will return a a Paws::AutoScaling::AutoScalingGroupsType instance with all the params; from all the responses. Please take into account that this mode can potentially consume vasts ammounts of memory.

DescribeAllAutoScalingInstances(sub { },[InstanceIds => ArrayRef[Str|Undef], MaxRecords => Int, NextToken => Str])

DescribeAllAutoScalingInstances([InstanceIds => ArrayRef[Str|Undef], MaxRecords => Int, NextToken => Str])

If passed a sub as first parameter, it will call the sub for each element found in :

 - AutoScalingInstances, passing the object as the first parameter, and the string 'AutoScalingInstances' as the second parameter 

If not, it will return a a Paws::AutoScaling::AutoScalingInstancesType instance with all the params; from all the responses. Please take into account that this mode can potentially consume vasts ammounts of memory.

DescribeAllLaunchConfigurations(sub { },[LaunchConfigurationNames => ArrayRef[Str|Undef], MaxRecords => Int, NextToken => Str])

DescribeAllLaunchConfigurations([LaunchConfigurationNames => ArrayRef[Str|Undef], MaxRecords => Int, NextToken => Str])

If passed a sub as first parameter, it will call the sub for each element found in :

 - LaunchConfigurations, passing the object as the first parameter, and the string 'LaunchConfigurations' as the second parameter 

If not, it will return a a Paws::AutoScaling::LaunchConfigurationsType instance with all the params; from all the responses. Please take into account that this mode can potentially consume vasts ammounts of memory.

DescribeAllLoadBalancers(sub { },AutoScalingGroupName => Str, [MaxRecords => Int, NextToken => Str])

DescribeAllLoadBalancers(AutoScalingGroupName => Str, [MaxRecords => Int, NextToken => Str])

If passed a sub as first parameter, it will call the sub for each element found in :

 - LoadBalancers, passing the object as the first parameter, and the string 'LoadBalancers' as the second parameter 

If not, it will return a a Paws::AutoScaling::DescribeLoadBalancersResponse instance with all the params; from all the responses. Please take into account that this mode can potentially consume vasts ammounts of memory.

DescribeAllLoadBalancerTargetGroups(sub { },AutoScalingGroupName => Str, [MaxRecords => Int, NextToken => Str])

DescribeAllLoadBalancerTargetGroups(AutoScalingGroupName => Str, [MaxRecords => Int, NextToken => Str])

If passed a sub as first parameter, it will call the sub for each element found in :

 - LoadBalancerTargetGroups, passing the object as the first parameter, and the string 'LoadBalancerTargetGroups' as the second parameter 

If not, it will return a a Paws::AutoScaling::DescribeLoadBalancerTargetGroupsResponse instance with all the params; from all the responses. Please take into account that this mode can potentially consume vasts ammounts of memory.

DescribeAllNotificationConfigurations(sub { },[AutoScalingGroupNames => ArrayRef[Str|Undef], MaxRecords => Int, NextToken => Str])

DescribeAllNotificationConfigurations([AutoScalingGroupNames => ArrayRef[Str|Undef], MaxRecords => Int, NextToken => Str])

If passed a sub as first parameter, it will call the sub for each element found in :

 - NotificationConfigurations, passing the object as the first parameter, and the string 'NotificationConfigurations' as the second parameter 

If not, it will return a a Paws::AutoScaling::DescribeNotificationConfigurationsAnswer instance with all the params; from all the responses. Please take into account that this mode can potentially consume vasts ammounts of memory.

DescribeAllPolicies(sub { },[AutoScalingGroupName => Str, MaxRecords => Int, NextToken => Str, PolicyNames => ArrayRef[Str|Undef], PolicyTypes => ArrayRef[Str|Undef]])

DescribeAllPolicies([AutoScalingGroupName => Str, MaxRecords => Int, NextToken => Str, PolicyNames => ArrayRef[Str|Undef], PolicyTypes => ArrayRef[Str|Undef]])

If passed a sub as first parameter, it will call the sub for each element found in :

 - ScalingPolicies, passing the object as the first parameter, and the string 'ScalingPolicies' as the second parameter 

If not, it will return a a Paws::AutoScaling::PoliciesType instance with all the params; from all the responses. Please take into account that this mode can potentially consume vasts ammounts of memory.

DescribeAllScalingActivities(sub { },[ActivityIds => ArrayRef[Str|Undef], AutoScalingGroupName => Str, MaxRecords => Int, NextToken => Str])

DescribeAllScalingActivities([ActivityIds => ArrayRef[Str|Undef], AutoScalingGroupName => Str, MaxRecords => Int, NextToken => Str])

If passed a sub as first parameter, it will call the sub for each element found in :

 - Activities, passing the object as the first parameter, and the string 'Activities' as the second parameter 

If not, it will return a a Paws::AutoScaling::ActivitiesType instance with all the params; from all the responses. Please take into account that this mode can potentially consume vasts ammounts of memory.

DescribeAllScheduledActions(sub { },[AutoScalingGroupName => Str, EndTime => Str, MaxRecords => Int, NextToken => Str, ScheduledActionNames => ArrayRef[Str|Undef], StartTime => Str])

DescribeAllScheduledActions([AutoScalingGroupName => Str, EndTime => Str, MaxRecords => Int, NextToken => Str, ScheduledActionNames => ArrayRef[Str|Undef], StartTime => Str])

If passed a sub as first parameter, it will call the sub for each element found in :

 - ScheduledUpdateGroupActions, passing the object as the first parameter, and the string 'ScheduledUpdateGroupActions' as the second parameter 

If not, it will return a a Paws::AutoScaling::ScheduledActionsType instance with all the params; from all the responses. Please take into account that this mode can potentially consume vasts ammounts of memory.

DescribeAllTags(sub { },[Filters => ArrayRef[Paws::AutoScaling::Filter], MaxRecords => Int, NextToken => Str])

DescribeAllTags([Filters => ArrayRef[Paws::AutoScaling::Filter], MaxRecords => Int, NextToken => Str])

If passed a sub as first parameter, it will call the sub for each element found in :

 - Tags, passing the object as the first parameter, and the string 'Tags' as the second parameter 

If not, it will return a a Paws::AutoScaling::TagsType instance with all the params; from all the responses. Please take into account that this mode can potentially consume vasts ammounts of memory.

SEE ALSO

This service class forms part of Paws

BUGS and CONTRIBUTIONS

The source code is located here: https://github.com/pplu/aws-sdk-perl

Please report bugs to: https://github.com/pplu/aws-sdk-perl/issues