等待EC2实例重启

时间:2016-11-15 15:39:27

标签: c# amazon-web-services amazon-ec2 aws-sdk

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

但是,

RebootInstanceRequest只是安排稍后重启。

是否有办法访问实例的计划以了解计划重新启动,或以其他方式等待重启完成?

1 个答案:

答案 0 :(得分:3)

  

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

不正确。当您发出ec2:StopInstance请求时,实例会从running移至stopping状态。但是你的程序没有阻止。请求立即返回更新的实例状态。如果要确定EC2实例何时最终处于stopped状态,则需要使用ec2:DescribeInstances轮询EC2实例状态。

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

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

您可以做的最好的事情就是发出重启请求并假设/希望在接下来的几分钟内重启。

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

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