ec2 spot 实例优雅终止

ec2 spot instance graceful termination

我们在其中一个用例中使用 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")

但这对我没用。

谁能帮我解决这个问题?

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)