All Products
Search
Document Center

Auto Scaling:ModifyLifecycleHook

Last Updated:Jul 09, 2024

Modifies a lifecycle hook. If you want to modify a lifecycle hook to better align with your business requirements, you can call the ModifyLifecycleHook operation. This allows you to adjust attributes like the scaling activity type, timeout period, and default action of the lifecycle hook, without the need to delete and recreate it. You can specify the lifecycle hook ID, lifecycle hook name, and scaling group ID to locate the lifecycle hook that you want to modify.

Usage notes

You can use one of the following methods to locate the lifecycle hook that you want to modify:

  • Specify LifecycleHookId. In this case, ScalingGroupId and LifecycleHookName are ignored.

  • Specify ScalingGroupId and LifecycleHookName. The name of each lifecycle hook is unique in each scaling group.

Debugging

OpenAPI Explorer automatically calculates the signature value. For your convenience, we recommend that you call this operation in OpenAPI Explorer. OpenAPI Explorer dynamically generates the sample code of the operation for different SDKs.

Request parameters

Parameter

Type

Required

Example

Description

Action

String

Yes

ModifyLifecycleHook

The operation that you want to perform. Set the value to ModifyLifecycleHook.

LifecycleHookId

String

No

ash-bp1fxuqyi98w0aib****

The ID of the lifecycle hook that you want to modify.

ScalingGroupId

String

No

asg-bp18p2yfxow2dloq****

The ID of the scaling group to which the lifecycle hook belongs.

LifecycleHookName

String

No

test_SCAL****

The name of the lifecycle hook that you want to modify.

DefaultResult

String

No

CONTINUE

The action that Auto Scaling performs after the lifecycle hook times out. Valid values:

  • CONTINUE: Auto Scaling continues to respond to a scale-in or scale-out request.

  • ABANDON: Auto Scaling releases Elastic Compute Service (ECS) instances during scale-out events, or removes ECS instances from the scaling group during scale-in events.

  • ROLLBACK: During scale-in events, Auto Scaling declines requests to release ECS instances and rolls back changes. During scale-out events, the ROLLBACK setting behaves identically to the ABANDON setting.

When a scaling group has multiple lifecycle hooks in effect, and you set DefaultResult for one of the lifecycle hooks to ABANDON or ROLLBACK, the following rule applies to scale-in events: If the lifecycle hook with DefaultResult set to ABANDON or ROLLBACK times out, other lifecycle hooks time out ahead of schedule. In other cases, Auto Scaling performs the action only after all lifecycle hooks time out. The action that Auto Scaling performs is determined by the value of DefaultResult that you specify for the lifecycle hook that most recently times out.

HeartbeatTimeout

Integer

No

600

The period of time before the lifecycle hook times out. When the lifecycle hook times out, Auto Scaling performs the action that is specified by DefaultResult. Valid values: 30 to 21600. Unit: seconds.

You can call the RecordLifecycleActionHeartbeat operation to extend the timeout period of a lifecycle hook. You can also call the CompleteLifecycleAction operation to end the timeout period of a lifecycle hook ahead of schedule.

LifecycleTransition

String

No

SCALE_IN

The type of the scaling activity to which you want to apply the lifecycle hook. Valid values:

  • SCALE_OUT

  • SCALE_IN

NotificationMetadata

String

No

Test

The fixed string that you want to include in a notification. Each time the lifecycle hook takes effect, Auto Scaling sends a notification. The value of this parameter cannot exceed 4,096 characters in length.

Auto Scaling sends the value of NotificationMetadata together with the notification. This helps you categorize your notifications. If you specify NotificationMetadata, you must specify NotificationArn.

NotificationArn

String

No

acs:mns:cn-beijing:161456884340****:queue/modifyLifecycleHo****

The Alibaba Cloud Resource Name (ARN) of the notification recipient. The following list describes the value formats of this parameter:

  • If you specify a Message Service (MNS) queue as the notification recipient, specify the value in the acs:mns:{region-id}:{account-id}:queue/{queuename} format.

  • If you specify an MNS topic as the notification recipient, specify the value in the acs:mns:{region-id}:{account-id}:topic/{topicname} format.

  • If you specify a CloudOps Orchestration Service (OOS) template as the notification recipient, specify the value in the acs:oos:{region-id}:{account-id}:template/{templatename} format.

  • If you specify an event bus provided by EventBridge as the notification recipient, specify the value in the acs:eventbridge:{region-id}:{account-id}:eventbus/default format.

The variables in the preceding value formats have the following meanings:

  • region-id: the region ID of the scaling group.

  • account-id: the ID of the Alibaba Cloud account.

  • queuename: the name of the MNS queue.

  • topicname: the name of the MNS topic.

  • templatename: the name of the OOS template.

RegionId

String

No

cn-beijing

The region ID of the scaling group.

LifecycleHookStatus

String

No

Active

The status that you want to specify for the lifecycle hook. Valid values: Valid values:

  • Active

  • InActive

If you do not specify this parameter, the status of the lifecycle hook remains unchanged after you call this operation.

Note

By default, a new lifecycle hook automatically enters the Active state.

Response parameters

Parameter

Type

Example

Description

RequestId

String

473469C7-AA6F-4DC5-B3DB-A3DC0DE3****

The request ID.

Examples

Sample requests

http(s)://ess.aliyuncs.com/?Action=ModifyLifecycleHook
&LifecycleHookId=ash-bp1fxuqyi98w0aib****
&ScalingGroupId=asg-bp18p2yfxow2dloq****
&LifecycleHookName=test_SCALE_IN
&DefaultResult=CONTINUE
&HeartbeatTimeout=600
&LifecycleTransition=SCALE_IN
&NotificationMetadata=Test
&NotificationArn=acs:mns:cn-beijing:161456884340****:queue/modifyLifecycleHo****
&RegionId=cn-beijing
&LifecycleHookStatus=Active
&<Common request parameters>

Sample success responses

XML format

HTTP/1.1 200 OK
Content-Type:application/xml

<ModifyLifecycleHookResponse>
    <RequestId>473469C7-AA6F-4DC5-B3DB-A3DC0DE3****</RequestId>
</ModifyLifecycleHookResponse>

JSON format

HTTP/1.1 200 OK
Content-Type:application/json

{
  "RequestId" : "473469C7-AA6F-4DC5-B3DB-A3DC0DE3****"
}

Error codes

For a list of error codes, see Service error codes.

HTTP status code

Error code

Error message

Description

400

InvalidParamter

The specified value of parameter is not valid.

The value of a parameter is invalid.

400

InvalidLifecycleHookId.NotExist

The specified lifecycleHookId not exist.

The value of LifecycleHookId is invalid.

400

InvalidLifecycleHookName.NotExist

The specified lifecycleHookName you provided not exist.

The value of LifecycleHookName is invalid.

400

InvalidNotificationArn

The specified parameter NotificationArn is invalid.

The value of NotificationArn is invalid.

400

UnsupportedNotificationType.CurrentRegion

The NotificationType is not supported in the special region which scalingGroup belongs to.

The notification recipient is not supported in the region where the scaling group resides.

400

LifecycleHook

The specified queue does not exist.

The specified MNS queue does not exist.

400

TopicNotExist

The specified topic does not exist.

The specified MNS topic does not exist.