全部产品
Search
文档中心

弹性伸缩:ModifyLifecycleHook

更新时间:Dec 05, 2024

如果当前伸缩组的生命周期挂钩不能满足业务需求,您无需做删除操作,调用ModifyLifecycleHook,通过待修改生命周期挂钩的ID或名称,伸缩组的ID等参数,修改一个生命周期挂钩的信息,包括生命周期挂钩适用的伸缩活动类型,生命周期挂钩为伸缩组活动设置的等待时间,等待状态结束后的下一步动作等信息。

接口说明

您可以通过以下两种方式指定待修改的生命周期挂钩:

  • 只指定生命周期挂钩ID(LifecycleHookId),此时将忽略伸缩组ID(ScalingGroupId)和生命周期挂钩名称(LifecycleHookName)参数。
  • 同时指定伸缩组ID(ScalingGroupId)与生命周期挂钩名称(LifecycleHookName),因为在一个伸缩组内同一个生命周期挂钩名称是唯一的。

调试

您可以在OpenAPI Explorer中直接运行该接口,免去您计算签名的困扰。运行成功后,OpenAPI Explorer可以自动生成SDK代码示例。

请求参数

名称

类型

是否必选

示例值

描述

Action String ModifyLifecycleHook

系统规定参数。取值:ModifyLifecycleHook

LifecycleHookId String ash-bp1fxuqyi98w0aib****

待修改生命周期挂钩的ID,用于指定生命周期挂钩。

ScalingGroupId String asg-bp18p2yfxow2dloq****

伸缩组的ID,用于指定生命周期挂钩。

LifecycleHookName String test_SCAL****

待修改生命周期挂钩的名称,用于指定生命周期挂钩。

DefaultResult String CONTINUE

等待状态结束后的下一步动作。取值范围:

  • CONTINUE:继续响应弹性扩张活动或者继续响应弹性收缩活动。
  • ABANDON:直接释放弹性扩张活动创建出来的ECS实例或者直接将弹性收缩活动中的ECS实例从伸缩组移除。
  • ROLLBACK:针对弹性收缩活动,会拒绝释放ECS实例,进行回滚;针对弹性扩张活动,会直接释放创建出来的ECS实例,效果同ABANDON一样。

当伸缩组发生弹性收缩活动(SCALE_IN)并触发多个生命周期挂钩时,如果一个生命周期挂钩的DefaultResult取值为ABANDONROLLBACK,且该挂钩等待状态结束时,会提前将其他生命周期挂钩对应的等待状态提前结束。其他情况下,下一步动作均以最后一个结束等待状态的下一步动作为准。

HeartbeatTimeout Integer 600

生命周期挂钩为伸缩组活动设置的等待时间,等待状态超时后会执行下一步动作。取值范围:30~21600,单位:秒。

您可以调用RecordLifecycleActionHeartbeat延长ECS实例的等待时间,也可以调用CompleteLifecycleAction提前结束伸缩活动的等待状态。

LifecycleTransition String SCALE_IN

生命周期挂钩适用的伸缩活动类型,取值范围:

  • SCALE_OUT:伸缩组弹性扩张活动。
  • SCALE_IN:伸缩组弹性收缩活动。
NotificationMetadata String Test

伸缩活动的等待状态的固定字符串信息。参数长度不能超过4096个字符。

弹性伸缩每次推送消息到通知对象时,会同时发送您预先指定的NotificationMetadata参数值,便于管理和标记不同类别的通知信息。当您同时指定了NotificationArn参数时,NotificationMetadata参数方可生效。

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

生命周期挂钩通知对象标识符。设置本参数时支持以下通知方式:

  • MNS队列,参数取值格式:acs:mns:{region-id}:{account-id}:queue/{queuename}
  • MNS主题,参数取值格式:acs:mns:{region-id}:{account-id}:topic/{topicname}
  • OOS模板,参数取值格式:acs:oos:{region-id}:{account-id}:template/{templatename}
  • 事件总线 ,参数取值格式:acs:eventbridge:{region-id}:{account-id}:eventbus/default

参数格式中的变量含义如下:

  • region-id:伸缩组所在的地域的ID。
  • account-id:阿里云账号ID。
  • queuename:MNS队列的名称。
  • topicname:MNS主题的名称。
  • templatename:OOS模板的名称。
RegionId String cn-beijing

伸缩组所属的地域ID。

LifecycleHookStatus String Active

修改当前生命周期挂钩的状态。取值范围:

  • Active:表示启动生命周期挂钩。
  • InActive:表示暂停生命周期挂钩。

如果不设置该参数,则当前生命周期挂钩状态保持为原有状态。

说明 生命周期挂钩创建成功后,系统默认为启动状态。

返回数据

名称

类型

示例值

描述

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

请求ID。

示例

请求示例

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
&公共请求参数

正常返回示例

XML格式

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

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

JSON格式

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

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

错误码

访问错误中心查看更多错误码。

HttpCode

错误码

错误信息

描述

400

InvalidParamter

The specified value of parameter is not valid.

参数值不合法。

400

InvalidLifecycleHookId.NotExist

The specified lifecycleHookId not exist.

指定的LifecycleHookId不存在。

400

InvalidLifecycleHookName.NotExist

The specified lifecycleHookName you provided not exist.

指定的LifecycleHookName不存在。

400

InvalidNotificationArn

The specified parameter NotificationArn is invalid.

指定的NotificationArn不存在。

400

UnsupportedNotificationType.CurrentRegion

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

当前地域不支持该通知方式。

400

LifecycleHook

The specified queue does not exist.

指定的MNS队列不存在。

400

TopicNotExist

The specified topic does not exist.

指定的MNS主题不存在。