【发布时间】:2018-09-15 11:31:09
【问题描述】:
我有一个 AutoScaling 组,我在实例启动时使用 LifecycleHooks,其中一些由我控制,一些由其他 AWS 服务控制。我一直在添加/删除 LifecycleHooks 并更改 ASG 的大小,并且实例卡在 Pending:Wait 中。我认为这是因为它正在等待来自 LifecycleHook 的信号,但我无法让它让步。
我尝试了很多方法:
在 EC2 控制台中终止实例
我终止了实例,但 ASG 等待 LifecycleHook 心跳超时,然后才真正从 ASG 终止实例,这可能需要一个小时。
手动完成 LifecycleHooks
我尝试手动完成 LifecycleHooks,如下伪代码所示:
describeAutoScalingGroups -> asg {
instances = getPending(asg.instances)
describeLifecycleHooks -> lifecycleHooks {
lifecycleHooks.each {
instances.each {
completeLifecycleAction(instance, hook)
}
}
}
}
这并不能解决问题。我猜它等待的 LifecycleHook 已从 ASG 中删除,因此无法手动完成 LifecycleHook。
下一步是什么?
显然,我应该更加小心地以正确的顺序删除这些资源,所有这些以及减少心跳也会有所帮助,但是我如何强制终止 ASG 中的实例,无论它在等待什么?
【问题讨论】:
标签: amazon-web-services autoscaling