等待EC2实例重新启动



你可以在一个实例上执行的大多数操作都是同步的——例如,如果你发送一个停止请求,它将立即运行,程序将阻塞直到它完成。

RebootInstanceRequest,但是,只是安排稍后重新启动。

是否有一种方法可以访问实例的调度来知道重新启动的计划,或者以其他方式等待重新启动完成?

如果你发送一个停止请求,它将立即运行,程序将阻塞,直到它完成

不是真的。当您发出ec2:StopInstance请求时,实例从running状态移动到stopping状态。但是你的程序不会阻塞。请求立即返回更新后的实例状态。如果您想确定EC2实例何时最终处于stopped状态,那么您需要使用ec2:DescribeInstances轮询EC2实例状态。

对于重新引导请求,一旦请求,重新引导几乎立即发生。正如您的链接所提到的,如果Linux实例没有在4分钟内重新启动,AWS最终会强制进行硬重启。

由于重新启动发生在EC2实例硬件中,因此EC2实例的状态不会从running更改。没有rebooting状态。除了监视EC2实例控制台日志中的消息外,没有任何机制可以确定EC2实例的操作系统何时启动和/或完成重新启动。

你能做的最好的事情就是发出重新启动请求,并假设/希望它在接下来的几分钟内重新启动。

作为另一种选择,您可以停止并重新启动实例:

  1. 发出停止请求,
  2. 等待实例停止,
  3. 发出启动请求,
  4. 等待实例正在运行

最新更新