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

前提条件

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

背景信息

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

创建生命周期挂钩

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

  1. 登录弹性伸缩控制台
  2. 在左侧导航栏中,单击伸缩组管理
  3. 在顶部菜单栏处,选择地域。
  4. 找到待操作的伸缩组,选择一种方式打开伸缩组详情页面。
    • 伸缩组名称/ID列,单击伸缩组ID。
    • 操作列,单击查看详情
  5. 在页面上方,单击生命周期挂钩页签。
  6. 在页面左上角,单击创建生命周期挂钩
  7. 完成生命周期挂钩相关配置。
    生命周期挂钩相关参数说明如下表所示:
    参数 描述
    名称 生命周期挂钩名字一旦确定就无法修改。长度为2~64个字符,以大小写字母、数字或中文开头,可包含半角句号(.)、下划线(_)和短划线(-)。
    适用的伸缩活动类型 发生指定类型的伸缩活动时,生命周期挂钩会被触发并挂起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. 在弹出的对话框中,单击确定

暂停或启用生命周期挂钩

创建生命周期挂钩后默认为生效状态。根据实际业务场景需要,您可以暂停或者重新启用伸缩组的生命周期挂钩功能。

  1. 伸缩组管理页面,找到待操作的伸缩组,单击对应操作列的查看详情
  2. 在伸缩组详情页面上方,单击生命周期挂钩页签。
  3. 暂停或启用生命周期挂钩。
    功能 场景描述 操作步骤
    暂停生命周期挂钩 如果您业务暂不需要生命周期挂钩功能,您可以暂停正在使用的生命周期挂钩。
    1. 找到待操作的生命周期挂钩,在对应操作列下,单击暂停
    2. 在弹出的对话框中,单击确定
    启用生命周期挂钩 如果您需要使用伸缩组的生命周期挂钩功能,您可以重新启用已暂停的生命周期挂钩。
    1. 找到待操作的生命周期挂钩,在对应操作列下,单击启用
    2. 在弹出的对话框中,单击确定

相关文档

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