在亚马逊网络服务控制台的EC2面板中,当您重新启动一个实例(通过控制台)时,状态列将从"running“更改为”reboot“,然后在重新启动完成后恢复为"running”。
在亚马逊EC2应用程序接口中,没有这样的状态“正在重启”。唯一可用的选项是“运行”、“挂起”、“停止”、“停止”、“关闭”和“终止”。检查实例状态的API也会在重启时返回" status :ok“。
使用API,我如何知道启动重启的实例已完成并再次正常运行?在知道重启已启动的情况下,一定有一些信息可以在重启状态下进行检查。
提前谢谢你,
发布于 2013-03-14 23:31:57
感谢大家的建议。我终于“逆向工程”了AWS控制台的javascript代码,他说:
> AWS.ioc.Configuration.getInstance("/ec2/instances/rebootInstances#controller").subscribe("changed",
> function() { var o =
> m.dataTable.getRecords(m.dataTable.getSelectedRows());
> m.dataTable.setColumn(o, "instanceState", "rebooting");
> i.rebooting.fire(o); YAHOO.lang.later(60000, m.dataTable, function(p,
> q, r) {
> m.dataTable.setColumn(p, q, r);
> i.rebooted.fire(p)
> }, [o, "instanceState", "running"], false) });可以看到,这只是一个60秒(60000毫秒)的超时...
发布于 2013-03-14 08:17:44
我认为你从评论中得到的一般要点是,仅仅因为一个实例已经重新启动,并不意味着它在干净的状态下启动,这样它就可以执行工作了。
因此,您确实应该在启动时进行某种健康监视或健全性检查,以指示您的应用程序实际上正在正常运行(或准备运行)。然后,您可以查询此监视器以确定是否按预期运行。
https://stackoverflow.com/questions/15396534
复制相似问题