您可以使用生命周期挂钩挂起创建或移出的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实例,进行预装软件或其他自定义操作。