每次我的spot实例计划终止时,我都需要运行一个清理脚本。我有两个终止原因:
我确实喜欢我在this博客上找到的简单脚本。它涵盖了第一种情况,并在关机前给我2分钟的清理时间。
是否有一种简单的方法可以获得第二种情况的2分钟通知?
可能会通过相同的网址提供警告吗?
#!/bin/bash
while true
do
if [ -z $(curl -Is http://169.254.169.254/latest/meta-data/spot/termination-time | head -1 | grep 404 | cut -d \ -f 2) ]
then
logger "Running shutdown hook."
# Call your shutdown script here.
break
else
# Spot instance not yet marked for termination.
sleep 5
fi
done
答案 0 :(得分:3)
Auto Scaling Hooks允许您创建一个实例将被终止(或启动)的事件通知。
向上:你会得到更多的时间。默认值为60分钟,您可以发送心跳消息以延长时间,也可以在清理完成后通知服务。如果你没有回应,那么事件就会超时并完成。
向下:通知不会转到实例本身,因为现场终止警告会发生。他们去SNS或SQS。您可能必须将实例订阅到通知(例如,在实例启动时将每个实例订阅到SNS主题),或者您需要滚动自己的系统来管理消息并与实例通信。