我正在尝试使用cloudformation / autoscaling组来配置我们的构建代理。这些需要花费很长时间来配置,并且我正在使用Lifecycle钩子来指示节点在完成安装其依赖关系后的准备情况,这可能需要长达90分钟后才能上线。
我的LifeCycleHook配置了HeartbeatTimeout:7200,这似乎工作正常。但是,我得到的印象是,Cloudformation只需要等待60分钟才能让ASG在放弃之前稳定下来。我应该设置除HeartbeatTimeout之外的其他超时,以便让我的节点有足够的时间通过他们的安装过程吗?
(我意识到这是一个边缘案例)
更新:随着我对此的更多工作,我意识到有两种不同的方法可以控制“自动缩放实例”的状态 - 生命周期挂钩和“云形信号”。似乎问题是cloudformation完全没有意识到生命周期钩子处于等待状态。我考虑使用cfn信号替换我的逻辑,但似乎在Rolling Updates上可以配置的最大超时(“PauseTime”)设置是一小时。
总而言之,如果部署时间超过一小时,似乎没有办法在实例部署期间可靠地发出状态。我已将此转发给支持,以了解他们的意见。
答案 0 :(得分:0)
嗯?为什么不早发送cfn信号来确认ASG的滚动更新策略。或完全删除它。
那,完成引导程序后,再调用LifeCycleHook。当您使用ABANDON调用LifeCycleHook时,实例也会终止吗?