您可以在實例上執行的大多數操作都是同步的 - 例如,如果您發送stop request,它將立即運行並且程序將阻塞,直至完成。但是,只需安排稍後重新啓動即可。等待EC2實例重新啓動
有沒有辦法訪問實例的計劃,以知道計劃重新啓動,或以其他方式等待重新啓動完成?
您可以在實例上執行的大多數操作都是同步的 - 例如,如果您發送stop request,它將立即運行並且程序將阻塞,直至完成。但是,只需安排稍後重新啓動即可。等待EC2實例重新啓動
有沒有辦法訪問實例的計劃,以知道計劃重新啓動,或以其他方式等待重新啓動完成?
如果您發送的停止請求,將立即跑過去,程序會阻塞,直到它完成
事實並非如此。當您發出ec2:StopInstance
請求時,實例將從running
移至stopping
狀態。但是你的程序不會阻塞。該請求立即返回更新的實例狀態。如果要確定EC2實例最終處於stopped
狀態的時間,則需要使用ec2:DescribeInstances
輪詢EC2實例狀態。
至於重新啓動請求,一旦請求,重新啓動幾乎立即發生。正如您的鏈接所述,如果一個Linux實例在4分鐘內沒有重新啓動,AWS最終會強制重新啓動。
由於在EC2實例硬件中發生了重新啓動,因此EC2實例的狀態不會從running
更改。沒有rebooting
狀態。除EC2實例控制檯日誌中的監視消息之外,沒有機制可以確定EC2實例的操作系統何時啓動和/或完成其重新啓動。
你可以做的最好的事情是發出重新啓動請求,並假設/希望它在接下來的幾分鐘內重新啓動。
作爲替代方案,你可以停止和重新啓動實例:
對,謝謝。開始/停止方法需要花費另一個計費時間,所以我想我只是試着計時。再次感謝! – Timst