All Products
Search
Document Center

Auto Scaling:ModifyLifecycleHook

Last Updated:Dec 23, 2024

Modifies a lifecycle hook. If an existing lifecycle hook does not meet your business requirements anymore, you can call the ModifyLifecycleHook operation to modify the information such as the scaling event, timeout period, and default action of the lifecycle hook. Before you modify a lifecycle hook, you can locate the lifecycle hook by its ID, name, or scaling group.

Usage notes

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

  • Specify the lifecycle hook ID by using LifecycleHookId. When you use this method, 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 scaling requests.

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

If 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: When the lifecycle hook whose DefaultResult is 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 recent times out.

HeartbeatTimeout

Integer

No

600

The period of time before the lifecycle hook times out. After the lifecycle hook times out, Auto Scaling performs the default action. 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 scaling event to which you want to apply the lifecycle hook. Valid values:

  • SCALE_OUT: scale-out events.

  • SCALE_IN: scale-in events.

NotificationMetadata

String

No

Test

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

Auto Scaling sends the value of NotificationMetadata together with the notifications. 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 Simple Message Queue (SMQ, formerly MNS) queue as the notification recipient, specify the value in the acs:mns:{region-id}:{account-id}:queue/{queuename} format.

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

  • If you use a CloudOps Orchestration Service (OOS) template, 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 SMQ queue.

  • topicname: the name of the SMQ 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: enables the lifecycle hook.

  • InActive: disables the lifecycle hook.

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

Description

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 current region.

400

LifecycleHook

The specified queue does not exist.

The specified SMQ queue does not exist.

400

TopicNotExist

The specified topic does not exist.

The specified SMQ topic does not exist.