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

背景信息

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

如果您为伸缩组创建了生命周期挂钩,在伸缩组进行伸缩活动时,正在加入或移出伸缩组的ECS实例将被挂钩挂起并置于等待状态。一个伸缩组内可以创建的生命周期挂钩数量有限,请参见使用限制
说明 生命周期挂钩仅在自动创建或移出ECS实例时生效,手动添加或移出ECS实例时不受其影响。
在ECS实例保持等待状态的时间内,当前伸缩组将具有以下特性:
  • 为您保留指定时长的操作时间(即挂钩的超时时间),您可以在挂起期间执行自定义操作,例如,初始化ECS实例配置或者获取ECS实例数据。
  • 伸缩组不再运行其它的伸缩活动。
  • 您可以删除生命周期挂钩来恢复执行伸缩活动。
生命周期挂钩可以配置通知方式,支持MNS主题、MNS队列和OOS模板。如果需要使用通知功能,请提前创建MNS主题MNS队列或者OOS自定义模板
说明 如果您使用OOS公共模板,无需提前创建,详细信息请参见OOS公共模板

示例:

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

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

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

操作步骤

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

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

  8. 单击创建生命周期挂钩