等待 EC2 实例重启

Wait for an EC2 instance to reboot

您可以对实例执行的大多数操作都是同步的 – 例如,如果您发送 stop request,它将立即 运行 并且程序将阻塞直到它完成。

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

有没有办法访问实例的时间表以了解重启计划,或者以其他方式等待重启完成?

if you send a stop request, it will be ran immediately and the program will block until it's completed

不正确。当您发出 ec2:StopInstance 请求时,实例会从 running 状态变为 stopping 状态。但是你的程序不会阻塞。请求 returns 立即返回更新后的实例状态。如果您想确定 EC2 实例何时最终处于 stopped 状态,则需要使用 ec2:DescribeInstances.

轮询 EC2 实例状态

至于重启请求,一旦请求,重启几乎会立即发生。正如您的 link 提到的,如果 Linux 实例没有在 4 分钟内重启,AWS 最终会强制硬重启。

由于 EC2 实例硬件发生重启,因此 EC2 实例的状态不会从 running 改变。没有 rebooting 状态。并且没有机制可以确定您的 EC2 实例的 OS 何时启动 and/or 完成它的重新启动,而不是监视 EC2 实例控制台日志中的消息。

您能做的最好的事情就是发出重新启动请求,然后assume/hope它会在接下来的几分钟内重新启动。

作为替代方法,您可以停止并重新启动实例:

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