ec2现货实例优雅终止

问题描述:

我们在使用情况之一中使用ec2现货实例,如果其使用2分钟终止通知标记为终止,我们需要对实例进行优雅退役(现货实例)。ec2现货实例优雅终止

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

为了验证这一点,我只是不断的现场实例

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

smtplib.SMTP('localhost').sendmail("[email protected]", "[email protected]", "Instance Terminated : $INSTANCE_ID") 

运行以下Python脚本但这从来没有为我工作。

任何人都可以帮助我吗?

+0

应该工作。是否发送电子邮件为你工作? – Mircea

+0

是的,如果我只是运行最后一行,我确实收到了电子邮件,但它在终止通知场景中不起作用。 – roy

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) 
+0

让我试试这个。 – roy

+1

您可以通过指向返回'200'响应的不同URL(例如Amazon S3上的文件)来测试它,以查看逻辑是否正常工作。 –