1

在 AWS 控制台的 EC2 面板中,当您重新启动实例(通过控制台)时,状态列从“正在运行”变为“正在重新启动”,然后在重新启动完成后又变回“正在运行”。

在 Amazon EC2 API 中,没有“重新启动”这样的状态。唯一可用的选项是“running”、“pending”、“stopped”、“stopping”、“shutting-down”和“terminate”。检查实例状态的 API 在重启时也会返回“status:ok”。

我如何使用 API 知道启动重启的实例已完成并再次正常运行?必须有一些信息可以在重新启动状态期间检查,知道重新启动已启动。

提前致谢,

4

2 回答 2

1

我认为您从评论中获得的一般要点是,仅仅因为实例已重新启动,并不意味着它以干净的状态启动,以便准备好执行工作。

因此,您确实应该在启动时进行某种健康监视器或健全性检查,以表明您的应用程序实际上正在正常运行(或准备运行)。然后,您可以查询此监视器以确定事情是否按预期运行。

于 2013-03-14T00:17:43.540 回答
1

谢谢大家的建议。我终于“逆向工程”了 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-14T15:31:57.007 回答