您可以使用生命周期挂钩挂起创建或移出的ECS实例,并在挂起期间对ECS实例进行自定义操作。

背景信息

您可以使用伸缩配置或实例启动模板定义创建ECS实例时的通用模板,但是,面对复杂的业务情况,您可能希望在启用ECS实例前进行更多自定义操作,这时就需要使用生命周期挂钩。

如果您为伸缩组创建了生命周期挂钩,在伸缩组进行伸缩活动时,正在加入或移出伸缩组的ECS实例将被挂钩挂起并置于等待状态。一个伸缩组内可以创建的生命周期挂钩数量有限,请参见使用限制
说明 生命周期挂钩在执行伸缩规则扩容和缩容时生效,而在向伸缩组手动添加已有ECS实例和将ECS实例手动移出伸缩组时不生效。
在ECS实例保持等待状态的时间内,当前伸缩组将具有以下特性:
  • 为您保留指定时长的操作时间(即挂钩的超时时间),您可以在挂起期间执行自定义操作。例如,初始化ECS实例配置或者获取ECS实例数据。
  • 在等待时间内,伸缩组能否执行其它伸缩活动和是否设置了期望实例数有关:
    • 如果伸缩组未设置期望实例数,伸缩组拒绝执行其它的伸缩活动。
    • 如果伸缩组设置了期望实例数,仅当前伸缩活动为并行伸缩活动时,伸缩组可以执行其他伸缩活动。有关如何判断并行伸缩活动,请参见常见概念和操作
    说明 您可以删除生命周期挂钩或者调用CompleteLifecycleAction接口提前结束伸缩活动的等待状态。
生命周期挂钩可以配置通知方式,支持MNS主题、MNS队列和OOS模板。如果需要使用通知功能,请提前创建MNS主题MNS队列或者OOS自定义模板
说明 如果您使用OOS公共模板,无需提前创建,详细信息请参见OOS公共模板

示例:

您拥有一个伸缩组asg-bp1iir8uwwpdsjfj****,伸缩最小实例数为0,伸缩组内有1个适用于弹性扩张活动的生命周期挂钩,目前伸缩组内没有ECS实例。

将伸缩最小实例数修改为1,由于ECS实例数没有达到下限,弹性扩张活动被触发,伸缩组自动创建一台ECS实例。但是,由于存在生命周期挂钩,该ECS实例不会马上进入服务中状态,而是进入加入挂起中状态。

在超时时间结束前,您可以登录该ECS实例,进行预装软件或其他自定义操作。

操作步骤

  1. 登录弹性伸缩控制台
  2. 在左侧导航栏中,单击伸缩组管理
  3. 在顶部菜单栏处,选择地域。
  4. 找到待操作的伸缩组,选择一种方式打开伸缩组详情页面。
    • 伸缩组名称/ID区域,单击伸缩组ID。
    • 操作区域,单击查看详情
  5. 在页面上方,单击生命周期挂钩页签。
  6. 在页面左上角,单击创建生命周期挂钩
  7. 完成生命周期挂钩相关配置。
    生命周期挂钩相关参数说明如下表所示。
    参数 描述
    名称 挂钩名字一旦确定,不能修改。长度为2~64个字符,以大小写字母、数字或中文开头,可包含英文句号(.)、下划线(_)和短横线(-)。
    适用的伸缩活动类型 发生指定类型的伸缩活动时,生命周期挂钩会被触发并挂起ECS实例。支持的选项如下:
    • 弹性收缩活动
    • 弹性扩张活动
    超时时间 ECS实例保持挂起状态的时间。最小为30秒,最大为21600秒(6小时),必须为整数。
    执行策略 生命周期挂钩超时后的动作,支持的选项如下:
    • 继续:继续执行弹性扩张活动或者弹性收缩活动。
    • 拒绝:针对弹性扩张活动,会直接释放创建出来的ECS实例;针对弹性收缩活动,直接移出ECS实例。
    通知方式 生命周期挂钩被触发时,可以选择通过指定的方式发出通知或者自动执行更多操作。支持的选项如下:
    • 不通知:默认选项。
    • MNS主题:您需要继续选择MNS主题。
    • MNS队列:您需要继续选择MNS队列。
    • OOS模板:您需要继续选择OOS模板。

    MNS主题和MNS队列支持填写通知标识。弹性伸缩每次推送消息到通知对象时,会同时发送您预先指定的通知标识,便于管理和标记不同类别的通知信息。

  8. 单击确认