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