ec2 spot实例优雅终止

时间:2015-10-05 21:01:55

标签: python amazon-web-services amazon-ec2 automation

我们在其中一个用例中使用了ec2 spot实例,如果使用2分钟终止通知将其标记为终止,我们需要对实例(spot实例)进行优雅的解除。

从在线阅读中我发现,由于现货市场的非生产性行为,我很难测试这次优雅退役的代码。

为了测试这个,我只是继续在现场实例上运行python脚本

while requests.get("http://169.254.169.254/latest/meta-data/spot/termination-time").status_code != "200":  
    sleep(5)

smtplib.SMTP('localhost').sendmail("me@abc.com", "me@abc.com", "Instance Terminated : $INSTANCE_ID")

但这对我没用。

任何人都可以帮助我吗?

1 个答案:

答案 0 :(得分:2)

status_code是整数,基于此处的文档http://docs.python-requests.org/en/latest/api/#requests.Response

所以基本上,即使你得到200响应,你将比较200与“200”,并将继续睡觉。将代码修改为:

while requests.get("http://169.254.169.254/latest/meta-data/spot/termination-time").status_code != 200:  
    sleep(5)