生命周期挂钩可以暂停由弹性伸缩自动触发的伸缩活动,使ECS实例或ECI实例处于挂起中的状态(即等待的状态),为您保留一段自定义操作的时间(例如预装软件),直至生命周期挂钩超时结束。本文为您介绍配置生命周期挂钩的方法。

前提条件

  • 已创建伸缩组。具体操作,请参见创建伸缩组
  • 可选:如果需要生命周期挂钩被触发时发出MNS通知,您需要提前创建MNS主题或者MNS队列。具体操作,请参见创建主题创建队列

背景信息

生命周期挂钩是一个管理伸缩组内ECS实或ECI实例生命周期的工具。更多信息,请参见生命周期挂钩概述

创建生命周期挂钩

每个伸缩组内最多可以创建10个生命周期挂钩。

  1. 登录弹性伸缩控制台
  2. 在左侧导航栏中,单击伸缩组管理
  3. 在顶部菜单栏处,选择地域。
  4. 找到待操作的伸缩组,选择一种方式打开伸缩组详情页面。
    • 伸缩组名称/ID列,单击伸缩组ID。
    • 操作列,单击查看详情
  5. 在页面上方,单击生命周期挂钩页签。
  6. 在页面左上角,单击创建生命周期挂钩
  7. 完成生命周期挂钩相关配置。
    生命周期挂钩相关参数说明如下表所示:
    参数 描述
    名称 生命周期挂钩名字一旦确定就无法修改。长度为2~64个字符,以大小写字母、数字或中文开头,可包含半角句号(.)、下划线(_)和短划线(-)。
    适用的伸缩活动类型 发生指定类型的伸缩活动时,生命周期挂钩会被触发并挂起ECS实例或ECI实例。支持的选项如下:
    • 弹性收缩活动
    • 弹性扩张活动
    超时时间 ECS实例或ECI实例保持挂起状态的时间。最小为30秒,最大为21600秒(6小时),必须为整数。
    说明 请根据您业务生命周期挂钩的处理时间,设置合理的超时时间。如果处理时间超过超时时间,则系统会执行默认执行策略。
    默认执行策略 ECS实例或者ECI实例挂起状态结束后的下一步执行动作。支持的选项如下:
    • 继续:针对弹性扩张活动,继续向伸缩组加入该ECS实例或ECI实例;针对弹性收缩活动,继续停止该ECS实例或ECI实例在伸缩组中提供计算能力。
    • 拒绝:针对弹性扩张活动,直接释放该ECS实例或ECI实例;针对弹性收缩活动,继续停止该ECS实例或ECI实例在伸缩组中提供计算能力。
      注意

      仅当生命周期挂钩的通知方式配置为OOS模板时,ECS实例或ECI实例挂起状态结束后的下一步执行动作取决于OOS模板的执行结果:

      • 成功:针对弹性扩张活动,继续向伸缩组加入该ECS实例或ECI实例;针对弹性收缩活动,继续停止该ECS实例或ECI实例在伸缩组中提供计算能力。
      • 失败:针对弹性扩张活动,直接释放ECS实例或ECI实例;针对弹性收缩活动,继续停止该ECS实例或ECI实例在伸缩组中提供计算能力。
    停止ECS实例或ECI实例在伸缩组中提供计算能力,具体分以下几种情况:
    • 如果实例是自动创建或者手动创建并托管给伸缩组的ECS实例或ECI实例,且伸缩组的实例回收模式配置为释放模式,则移除ECS实例或者ECI实例。
    • 如果实例是自动创建或者手动创建并托管给伸缩组的ECS实例或ECI实例,且伸缩组的实例回收模式配置为停机回收模式,则在伸缩组内停用ECS实例或ECI实例,保留ECS实例或ECI实例的部分资源。具体操作,请参见创建伸缩组
    • 如果实例是手动创建并未托管给伸缩组的ECS实例或ECI实例,则仅从伸缩组中移出ECS实例或ECI实例,ECS实例或ECI实例仍可正常运行。
    通知方式 生命周期挂钩被触发时,可以选择通过指定的方式发出通知或者自动执行更多操作。支持的选项如下:
    • 不通知:默认选项。
    • MNS主题:您需要选择MNS主题。如果您填写了通知标识,弹性伸缩每次推送消息到通知对象时,会同时发送您预先指定的通知标识,便于管理和标记不同类别的通知信息。
    • MNS队列:您需要选择MNS队列。如果您填写了通知标识,弹性伸缩每次推送消息到通知对象时,会同时发送您预先指定的通知标识,便于管理和标记不同类别的通知信息。
    • OOS模板:选择执行的模板类型,并为模板设置参数。
      • 模板类型包括公共模板我的模板。弹性伸缩会使用您选择的模板,对ECS实例进行自定义操作。
        说明
        • 我的模板需要您已创建模板。具体操作,请参见创建模板
        • 公共模板的更多信息,请参见公共模版
      • 在设置参数时,请按照实际使用情况设置参数。如果您需要设置OOS扮演的RAM角色,请注意以下信息:
  8. 单击确认
    创建完成后,您可以在伸缩组的生命周期挂钩页签下查看已创建的生命周期挂钩。
    如果弹性伸缩自动触发了适用于生命周期挂钩的伸缩活动时,对应的ECS实例或ECI实例的状态会变为挂起中,以ECS实例为例展示被挂起中实例的运行状态,如下图所示:弹性扩张活动

修改或删除生命周期挂钩

成功创建生命周期挂钩后,您可以根据不同的业务需求,对该生命周期挂钩进行修改或删除操作。例如伸缩活动被挂起时,您可以按照本步骤方法删除生命周期挂钩,也可以通过调用API CompleteLifecycleAction来结束等待状态,或者调用API DeleteLifecycleHook删除对应伸缩活动的生命周期挂钩来恢复伸缩活动的执行。更多信息,请参见CompleteLifecycleActionDeleteLifecycleHook

  1. 伸缩组管理页面,找到待操作的伸缩组,单击对应操作列的查看详情
  2. 在伸缩组详情页面上方,单击生命周期挂钩页签。
  3. 修改或删除生命周期挂钩。
    功能 场景描述 操作步骤
    修改生命周期挂钩 如果生命周期挂钩的属性不再满足当前业务需求,您可以修改一项或者多项属性,而无需重新创建生命周期挂钩。
    1. 找到待操作的生命周期挂钩,在操作列下,单击修改
    2. 修改生命周期挂钩的配置,然后单击确认

      不支持修改生命周期挂钩的名称,其它生命周期挂钩配置项的参数说明,请参见步骤8

    删除生命周期挂钩 如果您不再需要一个生命周期挂钩,可以将其删除,空出挂钩配额。
    说明 如果生命周期挂钩已经挂起一个ECS实例或ECI实例时,在删除该生命周期挂钩后,该ECS实例或ECI实例的等待状态会提前结束。
    1. 找到待操作的生命周期挂钩,在操作列下,单击删除
    2. 可选:如果需要同时删除多个生命周期挂钩时,选中多个待操作的生命周期挂钩,在生命周期挂钩列表底部,单击删除
    3. 在弹出的对话框中,单击确定

相关文档

控制台文档 API文档
创建伸缩组 CreateScalingGroup
创建生命周期挂钩 CreateLifecycleHook
修改或删除生命周期挂钩
创建主题 CreateTopic
创建队列 CreateQueue
CompleteLifecycleAction