我们在其中一个用例中使用了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")
但这对我没用。
任何人都可以帮助我吗?
答案 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)